From 261531749dd1cfb7acc61dba07e6d101e6ca6b54 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Thu, 29 May 2025 22:33:37 -0700 Subject: [PATCH 1/3] chore: update Binaryen Some new features are being added, although only relaxed SIMD is in a usable state. stringref has been almost obliterated, and only functionality compatible with JS string builtins is being kept. Binaryen also seems to be generating more nops and blocks than usual. Also, due to WebAssembly/binaryen#7135, dead arguments aren't being eliminated when a function reference is made (ref.func), which affects the optimized output of call-optional, function-call, and other tests. --- package-lock.json | 22 +- package.json | 2 +- src/builtins.ts | 8 +- src/compiler.ts | 3 +- src/glue/binaryen.d.ts | 149 +- src/glue/binaryen.js | 126 +- src/module.ts | 579 +- src/passes/pass.ts | 156 +- src/types.ts | 9 - tests/compiler/NonNullable.debug.wat | 58 +- tests/compiler/assignment-chain.debug.wat | 438 +- tests/compiler/binary.debug.wat | 134 +- tests/compiler/bindings/esm.debug.wat | 489 +- tests/compiler/bindings/esm.release.wat | 1886 +- .../bindings/noExportRuntime.debug.wat | 472 +- .../bindings/noExportRuntime.release.wat | 21 +- tests/compiler/bindings/raw.debug.wat | 489 +- tests/compiler/bindings/raw.release.wat | 1886 +- tests/compiler/builtins.debug.wat | 61 +- tests/compiler/builtins.release.wat | 2 + tests/compiler/call-inferred.debug.wat | 438 +- tests/compiler/call-optional.release.wat | 2 +- tests/compiler/call-rest.debug.wat | 470 +- tests/compiler/call-rest.release.wat | 38 +- tests/compiler/call-super.debug.wat | 438 +- tests/compiler/class-implements.debug.wat | 438 +- tests/compiler/class-implements.release.wat | 18 +- .../compiler/class-overloading-cast.debug.wat | 496 +- tests/compiler/class-overloading.debug.wat | 496 +- tests/compiler/class-overloading.release.wat | 2313 +- tests/compiler/class-override.debug.wat | 438 +- tests/compiler/class.debug.wat | 438 +- tests/compiler/comma.debug.wat | 1 + tests/compiler/constructor.debug.wat | 438 +- tests/compiler/constructor.release.wat | 28 +- tests/compiler/converge.debug.wat | 1 + tests/compiler/converge.release.wat | 1 + tests/compiler/do.debug.wat | 457 +- tests/compiler/do.release.wat | 24 +- tests/compiler/duplicate-fields.debug.wat | 438 +- tests/compiler/empty-exportruntime.debug.wat | 456 +- tests/compiler/empty-new.debug.wat | 438 +- tests/compiler/export-default.debug.wat | 1 + tests/compiler/export-default.release.wat | 1 + tests/compiler/exportimport-table.debug.wat | 1 + tests/compiler/exportimport-table.release.wat | 1 + tests/compiler/exports-lazy.debug.wat | 2 + .../compiler/exportstar-rereexport.debug.wat | 439 +- .../exportstar-rereexport.release.wat | 1 + .../compiler/extends-baseaggregate.debug.wat | 502 +- .../extends-baseaggregate.release.wat | 624 +- tests/compiler/extends-recursive.debug.wat | 438 +- tests/compiler/extends-recursive.release.wat | 21 +- tests/compiler/features/gc.release.wat | 1 + .../features/reference-types.debug.wat | 3 + .../features/reference-types.release.wat | 1 + .../compiler/features/relaxed-simd.debug.wat | 16 +- tests/compiler/field-initialization.debug.wat | 620 +- .../compiler/field-initialization.release.wat | 31 +- tests/compiler/field.debug.wat | 489 +- tests/compiler/field.release.wat | 21 +- tests/compiler/for.debug.wat | 457 +- tests/compiler/for.release.wat | 24 +- tests/compiler/function-call.debug.wat | 441 +- tests/compiler/function-call.release.wat | 30 +- tests/compiler/function-expression.debug.wat | 439 +- .../compiler/function-expression.release.wat | 765 +- tests/compiler/function-types.release.wat | 8 +- tests/compiler/getter-call.debug.wat | 438 +- tests/compiler/heap.debug.wat | 271 +- tests/compiler/import.debug.wat | 2 + .../incremental-gc/call-indirect.debug.wat | 456 +- tests/compiler/infer-array.debug.wat | 534 +- tests/compiler/infer-generic.debug.wat | 438 +- tests/compiler/inlining-blocklocals.debug.wat | 52 +- tests/compiler/inlining-recursive.debug.wat | 4 +- tests/compiler/inlining.debug.wat | 604 +- tests/compiler/inlining.release.wat | 13 +- tests/compiler/instanceof.debug.wat | 440 +- tests/compiler/issues/1095.debug.wat | 438 +- tests/compiler/issues/1095.release.wat | 21 +- tests/compiler/issues/1225.debug.wat | 456 +- tests/compiler/issues/1699.debug.wat | 470 +- tests/compiler/issues/1699.release.wat | 423 +- tests/compiler/issues/1714.debug.wat | 58 +- tests/compiler/issues/2166.debug.wat | 496 +- tests/compiler/issues/2322/index.debug.wat | 439 +- tests/compiler/issues/2622.debug.wat | 438 +- tests/compiler/issues/2707.debug.wat | 438 +- tests/compiler/issues/2707.release.wat | 8 +- tests/compiler/issues/2873.debug.wat | 1557 +- tests/compiler/localinit.debug.wat | 34 +- tests/compiler/logical.debug.wat | 438 +- tests/compiler/managed-cast.debug.wat | 458 +- tests/compiler/memcpy.debug.wat | 494 +- tests/compiler/memmove.debug.wat | 232 +- tests/compiler/memset.debug.wat | 62 +- tests/compiler/merge.debug.wat | 16 + tests/compiler/new.debug.wat | 438 +- tests/compiler/nontrapping-f2i.release.wat | 1 + tests/compiler/object-literal.debug.wat | 514 +- tests/compiler/object-literal.release.wat | 1629 +- .../operator-overload-non-ambiguity.debug.wat | 438 +- .../optional-typeparameters.debug.wat | 470 +- tests/compiler/possibly-null.debug.wat | 52 +- tests/compiler/possibly-null.release.wat | 39 +- tests/compiler/reexport.debug.wat | 439 +- tests/compiler/reexport.release.wat | 1 + tests/compiler/rereexport.debug.wat | 439 +- tests/compiler/rereexport.release.wat | 1 + tests/compiler/resolve-access.debug.wat | 1012 +- tests/compiler/resolve-access.release.wat | 239 +- tests/compiler/resolve-binary.debug.wat | 1775 +- .../compiler/resolve-elementaccess.debug.wat | 1733 +- .../resolve-function-expression.debug.wat | 788 +- tests/compiler/resolve-nested.debug.wat | 1 + tests/compiler/resolve-new.debug.wat | 439 +- .../compiler/resolve-propertyaccess.debug.wat | 788 +- tests/compiler/resolve-ternary.debug.wat | 1757 +- tests/compiler/resolve-ternary.release.wat | 555 +- tests/compiler/resolve-unary.debug.wat | 790 +- tests/compiler/return-unreachable.debug.wat | 438 +- tests/compiler/return.debug.wat | 1 + tests/compiler/return.release.wat | 2 + .../compiler/rt/alloc-large-memory.debug.wat | 295 +- tests/compiler/rt/finalize.debug.wat | 456 +- tests/compiler/rt/issue-2719.debug.wat | 456 +- .../rt/runtime-incremental-export.debug.wat | 456 +- .../rt/runtime-minimal-export.debug.wat | 464 +- .../compiler/rt/runtime-stub-export.debug.wat | 2 + .../rt/runtime-stub-export.release.wat | 2 + tests/compiler/scoped.debug.wat | 1 + tests/compiler/simd.debug.wat | 438 +- tests/compiler/std/array-access.debug.wat | 58 +- tests/compiler/std/array-literal.debug.wat | 521 +- tests/compiler/std/array.debug.wat | 9553 +++--- tests/compiler/std/array.release.wat | 6226 ++-- tests/compiler/std/arraybuffer.debug.wat | 456 +- tests/compiler/std/arraybuffer.release.wat | 1189 +- tests/compiler/std/dataview.debug.wat | 456 +- tests/compiler/std/dataview.release.wat | 4302 +-- tests/compiler/std/date.debug.wat | 1102 +- tests/compiler/std/hash.debug.wat | 504 +- tests/compiler/std/map.debug.wat | 3694 +- tests/compiler/std/map.release.wat | 18413 +++++----- tests/compiler/std/math.debug.wat | 280 +- tests/compiler/std/mod.debug.wat | 100 +- tests/compiler/std/new.debug.wat | 438 +- tests/compiler/std/object.debug.wat | 58 +- .../std/operator-overloading.debug.wat | 530 +- tests/compiler/std/pointer.debug.wat | 154 +- tests/compiler/std/set.debug.wat | 2098 +- tests/compiler/std/set.release.wat | 9506 +++--- tests/compiler/std/static-array.debug.wat | 438 +- tests/compiler/std/staticarray.debug.wat | 1648 +- tests/compiler/std/staticarray.release.wat | 449 +- .../compiler/std/string-casemapping.debug.wat | 1574 +- tests/compiler/std/string-encoding.debug.wat | 886 +- .../compiler/std/string-encoding.release.wat | 1863 +- tests/compiler/std/string-nonnull.debug.wat | 61 +- tests/compiler/std/string.debug.wat | 3175 +- tests/compiler/std/symbol.debug.wat | 1262 +- tests/compiler/std/typedarray.debug.wat | 26225 +++++++------- tests/compiler/std/typedarray.release.wat | 28342 ++++++++-------- tests/compiler/std/uri.debug.wat | 560 +- tests/compiler/super-inline.debug.wat | 438 +- tests/compiler/switch.debug.wat | 46 +- tests/compiler/tablebase.debug.wat | 1 + tests/compiler/templateliteral.debug.wat | 1787 +- tests/compiler/templateliteral.release.wat | 1237 +- tests/compiler/throw.debug.wat | 512 +- tests/compiler/throw.release.wat | 4 +- tests/compiler/typealias.debug.wat | 58 +- tests/compiler/typeof.debug.wat | 497 +- tests/compiler/unicode-identifier.debug.wat | 6 +- tests/compiler/unicode-identifier.release.wat | 6 +- tests/compiler/unify-local-flags.debug.wat | 28 +- tests/compiler/while.debug.wat | 742 +- tests/compiler/while.release.wat | 52 +- 179 files changed, 91824 insertions(+), 87960 deletions(-) diff --git a/package-lock.json b/package-lock.json index bfaa253c9f..1460aaad37 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.0", "license": "Apache-2.0", "dependencies": { - "binaryen": "116.0.0-nightly.20240114", + "binaryen": "123.0.0-nightly.20250530", "long": "^5.2.4" }, "bin": { @@ -968,11 +968,19 @@ "dev": true }, "node_modules/binaryen": { - "version": "116.0.0-nightly.20240114", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", - "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==", + "version": "123.0.0-nightly.20250530", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", + "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==", + "license": "Apache-2.0", "bin": { + "wasm-as": "bin/wasm-as", + "wasm-ctor-eval": "bin/wasm-ctor-eval", + "wasm-dis": "bin/wasm-dis", + "wasm-merge": "bin/wasm-merge", + "wasm-metadce": "bin/wasm-metadce", "wasm-opt": "bin/wasm-opt", + "wasm-reduce": "bin/wasm-reduce", + "wasm-shell": "bin/wasm-shell", "wasm2js": "bin/wasm2js" } }, @@ -3075,9 +3083,9 @@ "dev": true }, "binaryen": { - "version": "116.0.0-nightly.20240114", - "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-116.0.0-nightly.20240114.tgz", - "integrity": "sha512-0GZrojJnuhoe+hiwji7QFaL3tBlJoA+KFUN7ouYSDGZLSo9CKM8swQX8n/UcbR0d1VuZKU+nhogNzv423JEu5A==" + "version": "123.0.0-nightly.20250530", + "resolved": "https://registry.npmjs.org/binaryen/-/binaryen-123.0.0-nightly.20250530.tgz", + "integrity": "sha512-d1zPHBN5YlOd3Ff+OUxvVExuFeh8heSnqe+X3bjItFxGLvn4VGBKmrvv7pgy/cRhrIUGuPW138iaWfDhwjyDqg==" }, "brace-expansion": { "version": "1.1.11", diff --git a/package.json b/package.json index 39a9e67e54..627dc00210 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ }, "engineStrict": true, "dependencies": { - "binaryen": "116.0.0-nightly.20240114", + "binaryen": "123.0.0-nightly.20250530", "long": "^5.2.4" }, "devDependencies": { diff --git a/src/builtins.ts b/src/builtins.ts index 777ea655fd..f8b3deedb6 100644 --- a/src/builtins.ts +++ b/src/builtins.ts @@ -1654,8 +1654,7 @@ function builtin_max(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -1723,8 +1722,7 @@ function builtin_min(ctx: BuiltinFunctionContext): ExpressionRef { module.binary(op, module.local_get(temp1.index, typeRef), module.local_get(temp2.index, typeRef) - ), - typeRef + ) ); return ret; } @@ -3133,7 +3131,7 @@ function builtin_select(ctx: BuiltinFunctionContext): ExpressionRef { operands[2] ); compiler.currentType = type; - return module.select(arg0, arg1, arg2, type.toRef()); + return module.select(arg0, arg1, arg2); } builtinFunctions.set(BuiltinNames.select, builtin_select); diff --git a/src/compiler.ts b/src/compiler.ts index 246993f1cd..ccfa9db33d 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -4975,8 +4975,7 @@ export class Compiler extends DiagnosticEmitter { return module.select( module.i32(1), module.binary(BinaryOp.EqI32, rightExpr, module.i32(0)), - leftExpr, - TypeRef.I32 + leftExpr ); } case TypeKind.I8: diff --git a/src/glue/binaryen.d.ts b/src/glue/binaryen.d.ts index 0c0481d263..fdc2bd7492 100644 --- a/src/glue/binaryen.d.ts +++ b/src/glue/binaryen.d.ts @@ -57,9 +57,6 @@ export declare function _BinaryenTypeStructref(): TypeRef; export declare function _BinaryenTypeArrayref(): TypeRef; export declare function _BinaryenTypeI31ref(): TypeRef; export declare function _BinaryenTypeStringref(): TypeRef; -export declare function _BinaryenTypeStringviewWTF8(): TypeRef; -export declare function _BinaryenTypeStringviewWTF16(): TypeRef; -export declare function _BinaryenTypeStringviewIter(): TypeRef; export declare function _BinaryenTypeNullref(): TypeRef; export declare function _BinaryenTypeNullExternref(): TypeRef; export declare function _BinaryenTypeNullFuncref(): TypeRef; @@ -72,9 +69,6 @@ export declare function _BinaryenHeapTypeI31(): HeapTypeRef; export declare function _BinaryenHeapTypeStruct(): HeapTypeRef; export declare function _BinaryenHeapTypeArray(): HeapTypeRef; export declare function _BinaryenHeapTypeString(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF8(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewWTF16(): HeapTypeRef; -export declare function _BinaryenHeapTypeStringviewIter(): HeapTypeRef; export declare function _BinaryenHeapTypeNone(): HeapTypeRef; export declare function _BinaryenHeapTypeNoext(): HeapTypeRef; export declare function _BinaryenHeapTypeNofunc(): HeapTypeRef; @@ -282,7 +276,7 @@ export declare function _BinaryenBinarySetLeft(expr: ExpressionRef, leftExpr: Ex export declare function _BinaryenBinaryGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenBinarySetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenSelect(module: ModuleRef, conditionExpr: ExpressionRef, ifTrueExpr: ExpressionRef, ifFalseExpr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectGetIfTrue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenSelectSetIfTrue(expr: ExpressionRef, ifTrueExpr: ExpressionRef): void; export declare function _BinaryenSelectGetIfFalse(expr: ExpressionRef): ExpressionRef; @@ -457,7 +451,7 @@ export declare function _BinaryenRefAsSetOp(expr: ExpressionRef, op: Op): void; export declare function _BinaryenRefAsGetValue(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenRefAsSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; -export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: TypeRef): ExpressionRef; +export declare function _BinaryenRefFunc(module: ModuleRef, funcName: StringRef, type: HeapTypeRef): ExpressionRef; export declare function _BinaryenRefFuncGetFunc(expr: ExpressionRef): StringRef; export declare function _BinaryenRefFuncSetFunc(expr: ExpressionRef, funcName: StringRef): void; @@ -617,8 +611,6 @@ export declare function _BinaryenArrayNewSetInit(expr: ExpressionRef, initExpr: export declare function _BinaryenArrayNewGetSize(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayNewSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; -// TODO: BinaryenArrayNewSeg - export declare function _BinaryenArrayNewFixed(module: ModuleRef, type: HeapTypeRef, values: ArrayRef, numValues: Index): ExpressionRef; export declare function _BinaryenArrayNewFixedGetNumValues(expr: ExpressionRef): Index; export declare function _BinaryenArrayNewFixedGetValueAt(expr: ExpressionRef, index: Index): ExpressionRef; @@ -627,6 +619,22 @@ export declare function _BinaryenArrayNewFixedAppendValue(expr: ExpressionRef, v export declare function _BinaryenArrayNewFixedInsertValueAt(expr: ExpressionRef, index: Index, valueExpr: ExpressionRef): void; export declare function _BinaryenArrayNewFixedRemoveValueAt(expr: ExpressionRef, index: Index): ExpressionRef; +export declare function _BinaryenArrayNewData(module: ModuleRef, type: HeapTypeRef, name: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayNewElem(module: ModuleRef, type: HeapTypeRef, seg: StringRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayNewElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayNewElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayNewElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayNewElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + export declare function _BinaryenArrayGet(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, type: TypeRef, signed: bool): ExpressionRef; export declare function _BinaryenArrayGetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayGetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; @@ -647,6 +655,16 @@ export declare function _BinaryenArrayLen(module: ModuleRef, ref: ExpressionRef) export declare function _BinaryenArrayLenGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayLenSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFill(module: ModuleRef, ref: ExpressionRef, index: ExpressionRef, value: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetIndex(expr: ExpressionRef, indexExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetValue(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetValue(expr: ExpressionRef, valueExpr: ExpressionRef): void; +export declare function _BinaryenArrayFillGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayFillSetSize(expr: ExpressionRef, sizeExpr: ExpressionRef): void; + export declare function _BinaryenArrayCopy(module: ModuleRef, destRef: ExpressionRef, destIndex: ExpressionRef, srcRef: ExpressionRef, srcIndex: ExpressionRef, length: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopyGetDestRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetDestRef(expr: ExpressionRef, destRefExpr: ExpressionRef): void; @@ -659,22 +677,39 @@ export declare function _BinaryenArrayCopySetSrcIndex(expr: ExpressionRef, srcIn export declare function _BinaryenArrayCopyGetLength(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenArrayCopySetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; -// TODO: BinaryenArrayFill -// TODO: BinaryenArrayNewFixed - -export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ptr: ExpressionRef, length: ExpressionRef, start: ExpressionRef, end: ExpressionRef, isTry: bool): ExpressionRef; +export declare function _BinaryenArrayInitData(module: ModuleRef, name: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitDataSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitDataGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitDataGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitDataSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenArrayInitElem(module: ModuleRef, seg: StringRef, ref: ExpressionRef, index: ExpressionRef, offset: ExpressionRef, size: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemGetSegment(expr: ExpressionRef): StringRef; +export declare function _BinaryenArrayInitElemSetSegment(expr: ExpressionRef, segment: StringRef): void; +export declare function _BinaryenArrayInitElemGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetRef(expr: ExpressionRef, ref: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetIndex(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetIndex(expr: ExpressionRef, index: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetOffset(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetOffset(expr: ExpressionRef, offset: ExpressionRef): void; +export declare function _BinaryenArrayInitElemGetSize(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenArrayInitElemSetSize(expr: ExpressionRef, size: ExpressionRef): void; + +export declare function _BinaryenStringNew(module: ModuleRef, op: Op, ref: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringNewSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringNewGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; -export declare function _BinaryenStringNewGetLength(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringNewSetLength(expr: ExpressionRef, lengthExpr: ExpressionRef): void; +export declare function _BinaryenStringNewGetRef(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringNewSetRef(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; export declare function _BinaryenStringNewGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringNewSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringNewIsTry(expr: ExpressionRef): bool; -export declare function _BinaryenStringNewSetTry(expr: ExpressionRef, isTry: bool): void; export declare function _BinaryenStringConst(module: ExpressionRef, name: StringRef): ExpressionRef; export declare function _BinaryenStringConstGetString(expr: ExpressionRef): StringRef; @@ -689,10 +724,10 @@ export declare function _BinaryenStringMeasureSetRef(expr: ExpressionRef, refExp export declare function _BinaryenStringEncode(module: ExpressionRef, op: Op, ref: ExpressionRef, ptr: ExpressionRef, start: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeGetOp(expr: ExpressionRef): Op; export declare function _BinaryenStringEncodeSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringEncodeGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringEncodeGetPtr(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringEncodeSetPtr(expr: ExpressionRef, ptrExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetStr(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetStr(expr: ExpressionRef, refExpr: ExpressionRef): void; +export declare function _BinaryenStringEncodeGetArray(expr: ExpressionRef): ExpressionRef; +export declare function _BinaryenStringEncodeSetArray(expr: ExpressionRef, ptrExpr: ExpressionRef): void; export declare function _BinaryenStringEncodeGetStart(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEncodeSetStart(expr: ExpressionRef, startExpr: ExpressionRef): void; @@ -710,41 +745,13 @@ export declare function _BinaryenStringEqSetLeft(expr: ExpressionRef, leftExpr: export declare function _BinaryenStringEqGetRight(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringEqSetRight(expr: ExpressionRef, rightExpr: ExpressionRef): void; -export declare function _BinaryenStringAs(module: ExpressionRef, op: Op, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringAsSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringAsGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringAsSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringWTF8Advance(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef, bytes: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetPos(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringWTF8AdvanceGetBytes(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringWTF8AdvanceSetBytes(expr: ExpressionRef, bytesExpr: ExpressionRef): void; - export declare function _BinaryenStringWTF16Get(module: ExpressionRef, ref: ExpressionRef, pos: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringWTF16GetGetPos(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringWTF16GetSetPos(expr: ExpressionRef, posExpr: ExpressionRef): void; -export declare function _BinaryenStringIterNext(module: ExpressionRef, ref: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterNextSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; - -export declare function _BinaryenStringIterMove(module: ExpressionRef, op: Op, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringIterMoveSetOp(expr: ExpressionRef, op: Op): void; -export declare function _BinaryenStringIterMoveGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringIterMoveGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringIterMoveSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - -export declare function _BinaryenStringSliceWTF(module: ExpressionRef, op: Op, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceWTFGetOp(expr: ExpressionRef): Op; -export declare function _BinaryenStringSliceWTFSetOp(expr: ExpressionRef, op: Op): void; +export declare function _BinaryenStringSliceWTF(module: ExpressionRef, ref: ExpressionRef, start: ExpressionRef, end: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFGetRef(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; export declare function _BinaryenStringSliceWTFGetStart(expr: ExpressionRef): ExpressionRef; @@ -752,12 +759,6 @@ export declare function _BinaryenStringSliceWTFSetStart(expr: ExpressionRef, sta export declare function _BinaryenStringSliceWTFGetEnd(expr: ExpressionRef): ExpressionRef; export declare function _BinaryenStringSliceWTFSetEnd(expr: ExpressionRef, endExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIter(module: ExpressionRef, ref: ExpressionRef, num: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterGetRef(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetRef(expr: ExpressionRef, refExpr: ExpressionRef): void; -export declare function _BinaryenStringSliceIterGetNum(expr: ExpressionRef): ExpressionRef; -export declare function _BinaryenStringSliceIterSetNum(expr: ExpressionRef, numExpr: ExpressionRef): void; - export declare function _BinaryenAddFunction(module: ModuleRef, name: StringRef, params: TypeRef, results: TypeRef, varTypes: ArrayRef, numVarTypes: Index, body: ExpressionRef): FunctionRef; export declare function _BinaryenGetFunction(module: ModuleRef, name: StringRef): FunctionRef; export declare function _BinaryenRemoveFunction(module: ModuleRef, name: StringRef): void; @@ -769,12 +770,15 @@ export declare function _BinaryenFunctionGetParams(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetResults(func: FunctionRef): TypeRef; export declare function _BinaryenFunctionGetNumVars(func: FunctionRef): Index; export declare function _BinaryenFunctionGetVar(func: FunctionRef, index: Index): TypeRef; +export declare function _BinaryenFunctionAddVar(func: FunctionRef, type: TypeRef): Index; export declare function _BinaryenFunctionGetNumLocals(func: FunctionRef): Index; export declare function _BinaryenFunctionHasLocalName(func: FunctionRef, index: Index): bool; export declare function _BinaryenFunctionGetLocalName(func: FunctionRef, index: Index): StringRef; export declare function _BinaryenFunctionSetLocalName(func: FunctionRef, index: Index, name: StringRef): void; export declare function _BinaryenFunctionGetBody(func: FunctionRef): ExpressionRef; export declare function _BinaryenFunctionSetBody(func: FunctionRef, bodyExpr: ExpressionRef): void; +export declare function _BinaryenFunctionGetType(func: FunctionRef): HeapTypeRef; +export declare function _BinaryenFunctionSetType(func: FunctionRef, type: HeapTypeRef): void; export declare function _BinaryenFunctionOptimize(func: FunctionRef, module: ModuleRef): void; export declare function _BinaryenFunctionRunPasses(func: FunctionRef, module: ModuleRef, passes: ArrayRef, numPasses: Index): void; export declare function _BinaryenFunctionSetDebugLocation(func: FunctionRef, expr: ExpressionRef, fileIndex: Index, lineNumber: Index, columnNumber: Index): void; @@ -830,6 +834,8 @@ export declare function _BinaryenTableSetInitial(table: TableRef, initial: Index export declare function _BinaryenTableHasMax(table: TableRef): bool; export declare function _BinaryenTableGetMax(table: TableRef): Index; export declare function _BinaryenTableSetMax(table: TableRef, max: Index): void; +export declare function _BinaryenTableGetType(table: TableRef): TypeRef; +export declare function _BinaryenTableSetType(table: TableRef, type: TypeRef): void; export declare function _BinaryenAddActiveElementSegment(module: ModuleRef, table: StringRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index, offset: ExpressionRef): ElementSegmentRef; export declare function _BinaryenAddPassiveElementSegment(module: ModuleRef, name: StringRef, funcNames: ArrayRef, numFuncNames: Index): ElementSegmentRef; @@ -838,13 +844,15 @@ export declare function _BinaryenGetNumElementSegments(module: ModuleRef, name: export declare function _BinaryenGetElementSegment(module: ModuleRef, name: StringRef): ElementSegmentRef; export declare function _BinaryenGetElementSegmentByIndex(module: ModuleRef, index: Index): ElementSegmentRef; -export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segments: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; +export declare function _BinaryenSetMemory(module: ModuleRef, initial: Index, maximum: Index, exportName: StringRef, segmentNames: ArrayRef, segmentDatas: ArrayRef>, segmentPassive: ArrayRef, segmentOffsets: ArrayRef, segmentSizes: ArrayRef, numSegments: Index, shared: bool, memory64: bool, name: StringRef): void; export declare function _BinaryenGetNumMemorySegments(module: ModuleRef): Index; -export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, index: Index): u32; -export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, id: Index): usize; -export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, id: Index, buffer: ArrayRef): void; +export declare function _BinaryenGetMemorySegmentByteOffset(module: ModuleRef, segmentName: StringRef): u32; +export declare function _BinaryenGetMemorySegmentByteLength(module: ModuleRef, segmentName: StringRef): usize; +export declare function _BinaryenCopyMemorySegmentData(module: ModuleRef, segmentName: StringRef, buffer: ArrayRef): void; +export declare function _BinaryenAddDataSegment(module: ModuleRef, segmentName: StringRef, memoryName: StringRef, segmentPassive: bool, segmentOffset: ExpressionRef, segmentData: ArrayRef, segmentSize: Index): void; export declare function _BinaryenSetStart(module: ModuleRef, start: FunctionRef): void; +export declare function _BinaryenGetStart(module: ModuleRef): FunctionRef; export declare function _BinaryenModuleParse(text: StringRef): ModuleRef; export declare function _BinaryenModulePrint(module: ModuleRef): void; @@ -852,12 +860,12 @@ export declare function _BinaryenModulePrintAsmjs(module: ModuleRef): void; export declare function _BinaryenModuleValidate(module: ModuleRef): i32; export declare function _BinaryenModuleOptimize(module: ModuleRef): void; export declare function _BinaryenModuleRunPasses(module: ModuleRef, passes: ArrayRef, numPasses: Index): void; -export declare function _BinaryenModuleAutoDrop(module: ModuleRef): void; export declare function _BinaryenSizeofAllocateAndWriteResult(): i32; export declare function _BinaryenModuleAllocateAndWrite(resultOut: BinaryenModuleAllocateAndWriteResultRef, module: ModuleRef, sourceMapUrl: StringRef): void; export declare function _BinaryenModuleAllocateAndWriteText(module: ModuleRef): StringRef; -export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef, optimize: bool): StringRef; +export declare function _BinaryenModuleAllocateAndWriteStackIR(module: ModuleRef): StringRef; export declare function _BinaryenModuleRead(input: ArrayRef, inputSize: usize): ModuleRef; +export declare function _BinaryenModuleReadWithFeatures(input: ArrayRef, inputSize: usize, featureFlags: FeatureFlags): ModuleRef; export declare function _BinaryenModuleInterpret(module: ModuleRef): void; export declare function _BinaryenModuleAddDebugInfoFileName(module: ModuleRef, filename: StringRef): Index; export declare function _BinaryenModuleGetDebugInfoFileName(module: ModuleRef, index: Index): StringRef; @@ -902,15 +910,26 @@ export declare function _BinaryenGetShrinkLevel(): i32; export declare function _BinaryenSetShrinkLevel(level: i32): void; export declare function _BinaryenGetDebugInfo(): bool; export declare function _BinaryenSetDebugInfo(on: bool): void; +export declare function _BinaryenGetTrapsNeverHappen(): bool; +export declare function _BinaryenSetTrapsNeverHappen(on: bool): void; +export declare function _BinaryenGetClosedWorld(): bool; +export declare function _BinaryenSetClosedWorld(on: bool): void; export declare function _BinaryenGetLowMemoryUnused(): bool; export declare function _BinaryenSetLowMemoryUnused(on: bool): void; export declare function _BinaryenGetZeroFilledMemory(): bool; export declare function _BinaryenSetZeroFilledMemory(on: bool): void; export declare function _BinaryenGetFastMath(): bool; export declare function _BinaryenSetFastMath(on: bool): void; +export declare function _BinaryenGetGenerateStackIR(): bool; +export declare function _BinaryenSetGenerateStackIR(on: bool): void; +export declare function _BinaryenGetOptimizeStackIR(): bool; +export declare function _BinaryenSetOptimizeStackIR(on: bool): void; export declare function _BinaryenGetPassArgument(key: StringRef): StringRef; export declare function _BinaryenSetPassArgument(key: StringRef, value: StringRef): void; export declare function _BinaryenClearPassArguments(): void; +export declare function _BinaryenHasPassToSkip(pass: StringRef): bool; +export declare function _BinaryenAddPassToSkip(pass: StringRef): void; +export declare function _BinaryenClearPassesToSkip(): void; export declare function _BinaryenGetAlwaysInlineMaxSize(): Index; export declare function _BinaryenSetAlwaysInlineMaxSize(size: Index): void; export declare function _BinaryenGetFlexibleInlineMaxSize(): Index; diff --git a/src/glue/binaryen.js b/src/glue/binaryen.js index 91493cbc8d..295afb7635 100644 --- a/src/glue/binaryen.js +++ b/src/glue/binaryen.js @@ -21,9 +21,6 @@ export const { _BinaryenTypeStructref, _BinaryenTypeArrayref, _BinaryenTypeStringref, - _BinaryenTypeStringviewWTF8, - _BinaryenTypeStringviewWTF16, - _BinaryenTypeStringviewIter, _BinaryenTypeNullref, _BinaryenTypeNullExternref, _BinaryenTypeNullFuncref, @@ -37,9 +34,6 @@ export const { _BinaryenHeapTypeArray, // _BinaryenHeapTypeExn, _BinaryenHeapTypeString, - _BinaryenHeapTypeStringviewWTF8, - _BinaryenHeapTypeStringviewWTF16, - _BinaryenHeapTypeStringviewIter, _BinaryenHeapTypeNone, _BinaryenHeapTypeNoext, _BinaryenHeapTypeNofunc, @@ -585,6 +579,22 @@ export const { _BinaryenArrayNewFixedInsertValueAt, _BinaryenArrayNewFixedRemoveValueAt, + _BinaryenArrayNewData, + _BinaryenArrayNewDataGetSegment, + _BinaryenArrayNewDataSetSegment, + _BinaryenArrayNewDataGetOffset, + _BinaryenArrayNewDataSetOffset, + _BinaryenArrayNewDataGetSize, + _BinaryenArrayNewDataSetSize, + + _BinaryenArrayNewElem, + _BinaryenArrayNewElemGetSegment, + _BinaryenArrayNewElemSetSegment, + _BinaryenArrayNewElemGetOffset, + _BinaryenArrayNewElemSetOffset, + _BinaryenArrayNewElemGetSize, + _BinaryenArrayNewElemSetSize, + _BinaryenArrayGet, _BinaryenArrayGetGetRef, _BinaryenArrayGetSetRef, @@ -605,6 +615,16 @@ export const { _BinaryenArrayLenGetRef, _BinaryenArrayLenSetRef, + _BinaryenArrayFill, + _BinaryenArrayFillGetRef, + _BinaryenArrayFillSetRef, + _BinaryenArrayFillGetIndex, + _BinaryenArrayFillSetIndex, + _BinaryenArrayFillGetValue, + _BinaryenArrayFillSetValue, + _BinaryenArrayFillGetSize, + _BinaryenArrayFillSetSize, + _BinaryenArrayCopy, _BinaryenArrayCopyGetDestRef, _BinaryenArrayCopySetDestRef, @@ -617,19 +637,39 @@ export const { _BinaryenArrayCopyGetLength, _BinaryenArrayCopySetLength, + _BinaryenArrayInitData, + _BinaryenArrayInitDataGetSegment, + _BinaryenArrayInitDataSetSegment, + _BinaryenArrayInitDataGetRef, + _BinaryenArrayInitDataSetRef, + _BinaryenArrayInitDataGetIndex, + _BinaryenArrayInitDataSetIndex, + _BinaryenArrayInitDataGetOffset, + _BinaryenArrayInitDataSetOffset, + _BinaryenArrayInitDataGetSize, + _BinaryenArrayInitDataSetSize, + + _BinaryenArrayInitElem, + _BinaryenArrayInitElemGetSegment, + _BinaryenArrayInitElemSetSegment, + _BinaryenArrayInitElemGetRef, + _BinaryenArrayInitElemSetRef, + _BinaryenArrayInitElemGetIndex, + _BinaryenArrayInitElemSetIndex, + _BinaryenArrayInitElemGetOffset, + _BinaryenArrayInitElemSetOffset, + _BinaryenArrayInitElemGetSize, + _BinaryenArrayInitElemSetSize, + _BinaryenStringNew, _BinaryenStringNewGetOp, _BinaryenStringNewSetOp, - _BinaryenStringNewGetPtr, - _BinaryenStringNewSetPtr, - _BinaryenStringNewGetLength, - _BinaryenStringNewSetLength, + _BinaryenStringNewGetRef, + _BinaryenStringNewSetRef, _BinaryenStringNewGetStart, _BinaryenStringNewSetStart, _BinaryenStringNewGetEnd, _BinaryenStringNewSetEnd, - _BinaryenStringNewIsTry, - _BinaryenStringNewSetTry, _BinaryenStringConst, _BinaryenStringConstGetString, @@ -644,10 +684,10 @@ export const { _BinaryenStringEncode, _BinaryenStringEncodeGetOp, _BinaryenStringEncodeSetOp, - _BinaryenStringEncodeGetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeGetStr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeGetStart, _BinaryenStringEncodeSetStart, @@ -665,41 +705,13 @@ export const { _BinaryenStringEqGetRight, _BinaryenStringEqSetRight, - _BinaryenStringAs, - _BinaryenStringAsGetOp, - _BinaryenStringAsSetOp, - _BinaryenStringAsGetRef, - _BinaryenStringAsSetRef, - - _BinaryenStringWTF8Advance, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceGetBytes, - _BinaryenStringWTF8AdvanceSetBytes, - _BinaryenStringWTF16Get, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetGetPos, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNext, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterNextSetRef, - - _BinaryenStringIterMove, - _BinaryenStringIterMoveGetOp, - _BinaryenStringIterMoveSetOp, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveGetNum, - _BinaryenStringIterMoveSetNum, - _BinaryenStringSliceWTF, - _BinaryenStringSliceWTFGetOp, - _BinaryenStringSliceWTFSetOp, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFGetStart, @@ -707,12 +719,6 @@ export const { _BinaryenStringSliceWTFGetEnd, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIter, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterGetNum, - _BinaryenStringSliceIterSetNum, - _BinaryenAddFunction, _BinaryenGetFunction, _BinaryenRemoveFunction, @@ -724,12 +730,15 @@ export const { _BinaryenFunctionGetResults, _BinaryenFunctionGetNumVars, _BinaryenFunctionGetVar, + _BinaryenFunctionAddVar, _BinaryenFunctionGetNumLocals, _BinaryenFunctionHasLocalName, _BinaryenFunctionGetLocalName, _BinaryenFunctionSetLocalName, _BinaryenFunctionGetBody, _BinaryenFunctionSetBody, + _BinaryenFunctionGetType, + _BinaryenFunctionSetType, _BinaryenFunctionOptimize, _BinaryenFunctionRunPasses, _BinaryenFunctionSetDebugLocation, @@ -785,6 +794,8 @@ export const { _BinaryenTableHasMax, _BinaryenTableGetMax, _BinaryenTableSetMax, + _BinaryenTableGetType, + _BinaryenTableSetType, _BinaryenAddActiveElementSegment, _BinaryenAddPassiveElementSegment, @@ -798,8 +809,10 @@ export const { _BinaryenGetMemorySegmentByteOffset, _BinaryenGetMemorySegmentByteLength, _BinaryenCopyMemorySegmentData, + _BinaryenAddDataSegment, _BinaryenSetStart, + _BinaryenGetStart, _BinaryenModuleParse, _BinaryenModulePrint, @@ -807,12 +820,12 @@ export const { _BinaryenModuleValidate, _BinaryenModuleOptimize, _BinaryenModuleRunPasses, - _BinaryenModuleAutoDrop, _BinaryenSizeofAllocateAndWriteResult, _BinaryenModuleAllocateAndWrite, _BinaryenModuleAllocateAndWriteText, _BinaryenModuleAllocateAndWriteStackIR, _BinaryenModuleRead, + _BinaryenModuleReadWithFeatures, _BinaryenModuleInterpret, _BinaryenModuleAddDebugInfoFileName, _BinaryenModuleGetDebugInfoFileName, @@ -857,15 +870,26 @@ export const { _BinaryenSetShrinkLevel, _BinaryenGetDebugInfo, _BinaryenSetDebugInfo, + _BinaryenGetTrapsNeverHappen, + _BinaryenSetTrapsNeverHappen, + _BinaryenGetClosedWorld, + _BinaryenSetClosedWorld, _BinaryenGetLowMemoryUnused, _BinaryenSetLowMemoryUnused, _BinaryenGetZeroFilledMemory, _BinaryenSetZeroFilledMemory, _BinaryenGetFastMath, _BinaryenSetFastMath, + _BinaryenGetGenerateStackIR, + _BinaryenSetGenerateStackIR, + _BinaryenGetOptimizeStackIR, + _BinaryenSetOptimizeStackIR, _BinaryenGetPassArgument, _BinaryenSetPassArgument, _BinaryenClearPassArguments, + _BinaryenHasPassToSkip, + _BinaryenAddPassToSkip, + _BinaryenClearPassesToSkip, _BinaryenGetAlwaysInlineMaxSize, _BinaryenSetAlwaysInlineMaxSize, _BinaryenGetFlexibleInlineMaxSize, diff --git a/src/module.ts b/src/module.ts index 24d1fb4c8c..63153f9b2d 100644 --- a/src/module.ts +++ b/src/module.ts @@ -78,9 +78,6 @@ export namespace TypeRef { export const Arrayref = binaryen._BinaryenTypeArrayref(); export const I31ref = binaryen._BinaryenTypeI31ref(); export const Stringref = binaryen._BinaryenTypeStringref(); - export const StringviewWTF8 = binaryen._BinaryenTypeStringviewWTF8(); - export const StringviewWTF16 = binaryen._BinaryenTypeStringviewWTF16(); - export const StringviewIter = binaryen._BinaryenTypeStringviewIter(); export const Noneref = binaryen._BinaryenTypeNullref(); export const Nofuncref = binaryen._BinaryenTypeNullFuncref(); export const Noexternref = binaryen._BinaryenTypeNullExternref(); @@ -102,21 +99,18 @@ export namespace HeapTypeRef { // // where (...) represents the concrete subtypes - export const Extern: HeapTypeRef = 0 /* _BinaryenHeapTypeExt */; - export const Func: HeapTypeRef = 1 /* _BinaryenHeapTypeFunc */; - export const Any: HeapTypeRef = 2 /* _BinaryenHeapTypeAny */; - export const Eq: HeapTypeRef = 3 /* _BinaryenHeapTypeEq */; - export const I31: HeapTypeRef = 4 /* _BinaryenHeapTypeI31 */; - export const Struct: HeapTypeRef = 5 /* _BinaryenHeapTypeStruct */; - export const Array: HeapTypeRef = 6 /* _BinaryenHeapTypeArray */; + export const Extern: HeapTypeRef = 8 /* _BinaryenHeapTypeExt */; + export const Func: HeapTypeRef = 16 /* _BinaryenHeapTypeFunc */; + export const Any: HeapTypeRef = 32 /* _BinaryenHeapTypeAny */; + export const Eq: HeapTypeRef = 40 /* _BinaryenHeapTypeEq */; + export const I31: HeapTypeRef = 48 /* _BinaryenHeapTypeI31 */; + export const Struct: HeapTypeRef = 56 /* _BinaryenHeapTypeStruct */; + export const Array: HeapTypeRef = 64 /* _BinaryenHeapTypeArray */; export const Exn: HeapTypeRef = 7 /* TODO: BinaryenHeapTypeExn */; - export const String: HeapTypeRef = 8 /* _BinaryenHeapTypeString */; - export const StringviewWTF8: HeapTypeRef = 9 /* _BinaryenHeapTypeStringviewWTF8 */; - export const StringviewWTF16: HeapTypeRef = 10 /* _BinaryenHeapTypeStringviewWTF16 */; - export const StringviewIter: HeapTypeRef = 11 /* _BinaryenHeapTypeStringviewIter */; - export const None: HeapTypeRef = 12 /* _BinaryenHeapTypeNone */; - export const Noextern: HeapTypeRef = 13 /* _BinaryenHeapTypeNoext */; - export const Nofunc: HeapTypeRef = 14 /* _BinaryenHeapTypeNofunc */; + export const String: HeapTypeRef = 80 /* _BinaryenHeapTypeString */; + export const None: HeapTypeRef = 88 /* _BinaryenHeapTypeNone */; + export const Noextern: HeapTypeRef = 96 /* _BinaryenHeapTypeNoext */; + export const Nofunc: HeapTypeRef = 104 /* _BinaryenHeapTypeNofunc */; export function isBottom(ht: HeapTypeRef): bool { return binaryen._BinaryenHeapTypeIsBottom(ht); @@ -142,7 +136,7 @@ export namespace HeapTypeRef { b = t; } switch (a) { - case HeapTypeRef.Extern: + case HeapTypeRef.Extern: return b == HeapTypeRef.String ? a : -1; case HeapTypeRef.Func: return -1; case HeapTypeRef.Any: return a; case HeapTypeRef.Eq: { @@ -160,11 +154,7 @@ export namespace HeapTypeRef { ? HeapTypeRef.Eq : HeapTypeRef.Any; } - case HeapTypeRef.Array: - case HeapTypeRef.String: - case HeapTypeRef.StringviewWTF8: - case HeapTypeRef.StringviewWTF16: - case HeapTypeRef.StringviewIter: return HeapTypeRef.Any; + case HeapTypeRef.Array: return HeapTypeRef.Any; } assert(false); return -1; @@ -222,10 +212,15 @@ export const enum FeatureFlags { ExtendedConst = 8192 /* _BinaryenFeatureExtendedConst */, Stringref = 16384 /* _BinaryenFeatureStrings */, MultiMemory = 32768 /* _BinaryenFeatureMultiMemory */, - All = 131071 /* _BinaryenFeatureAll */ + StackSwitching = 65536 /* _BinaryenFeatureStackSwitching */, + SharedEverything = 131072 /* _BinaryenFeatureSharedEverything */, + FP16 = 262144 /* _BinaryenFeatureFP16 */, + BulkMemoryOpt = 524288 /* _BinaryenFeatureBulkMemoryOpt */, + CallIndirectOverlong = 1048576 /* _BinaryenFeatureCallIndirectOverlong */, + All = 4194303 /* _BinaryenFeatureAll */ } -/** Binaryen expression id constants. */ +/** Binaryen expression id constants. See wasm-delegations.def in Binaryen. */ export const enum ExpressionId { Invalid = 0 /* _BinaryenInvalidId */, Block = 1 /* _BinaryenBlockId */, @@ -278,48 +273,52 @@ export const enum ExpressionId { TableGrow = 48 /* _BinaryenTableGrowId */, TableFill = 49 /* _BinaryenTableFillId */, TableCopy = 50 /* _BinaryenTableCopyId */, - Try = 51 /* _BinaryenTryId */, - TryTable = 52 /* _BinaryenTryTableId */, - Throw = 53 /* _BinaryenThrowId */, - Rethrow = 54 /* _BinaryenRethrowId */, - ThrowRef = 55 /* _BinaryenThrowRefId */, - TupleMake = 56 /* _BinaryenTupleMakeId */, - TupleExtract = 57 /* _BinaryenTupleExtractId */, - RefI31 = 58 /* _BinaryenRefI31Id */, - I31Get = 59 /* _BinaryenI31GetId */, - CallRef = 60 /* _BinaryenCallRefId */, - RefTest = 61 /* _BinaryenRefTestId */, - RefCast = 62 /* _BinaryenRefCastId */, - BrOn = 63 /* _BinaryenBrOnId */, - StructNew = 64 /* _BinaryenStructNewId */, - StructGet = 65 /* _BinaryenStructGetId */, - StructSet = 66 /* _BinaryenStructSetId */, - ArrayNew = 67 /* _BinaryenArrayNewId */, - ArrayNewData = 68 /* _BinaryenArrayNewDataId */, - ArrayNewElem = 69 /* _BinaryenArrayNewElemId */, - ArrayNewFixed = 70 /* _BinaryenArrayNewFixedId */, - ArrayGet = 71 /* _BinaryenArrayGetId */, - ArraySet = 72 /* _BinaryenArraySetId */, - ArrayLen = 73 /* _BinaryenArrayLenId */, - ArrayCopy = 74 /* _BinaryenArrayCopyId */, - ArrayFill = 75 /* _BinaryenArrayFillId */, - ArrayInitData = 76 /* _BinaryenArrayInitDataId */, - ArrayInitElem = 77 /* _BinaryenArrayInitElemId */, - RefAs = 78 /* _BinaryenRefAsId */, - StringNew = 79 /* _BinaryenStringNewId */, - StringConst = 80 /* _BinaryenStringConstId */, - StringMeasure = 81 /* _BinaryenStringMeasureId */, - StringEncode = 82 /* _BinaryenStringEncodeId */, - StringConcat = 83 /* _BinaryenStringConcatId */, - StringEq = 84 /* _BinaryenStringEqId */, - StringAs = 85 /* _BinaryenStringAsId */, - StringWTF8Advance = 86 /* _BinaryenStringWTF8AdvanceId */, - StringWTF16Get = 87 /* _BinaryenStringWTF16GetId */, - StringIterNext = 88 /* _BinaryenStringIterNextId */, - StringIterMove = 89 /* _BinaryenStringIterMoveId */, + TableInit = 51 /* _BinaryenTableInitId */, + Try = 52 /* _BinaryenTryId */, + TryTable = 53 /* _BinaryenTryTableId */, + Throw = 54 /* _BinaryenThrowId */, + Rethrow = 55 /* _BinaryenRethrowId */, + ThrowRef = 56 /* _BinaryenThrowRefId */, + TupleMake = 57 /* _BinaryenTupleMakeId */, + TupleExtract = 58 /* _BinaryenTupleExtractId */, + RefI31 = 59 /* _BinaryenRefI31Id */, + I31Get = 60 /* _BinaryenI31GetId */, + CallRef = 61 /* _BinaryenCallRefId */, + RefTest = 62 /* _BinaryenRefTestId */, + RefCast = 63 /* _BinaryenRefCastId */, + RefGetDesc = 64 /* _BinaryenRefGetDescId */, + BrOn = 65 /* _BinaryenBrOnId */, + StructNew = 66 /* _BinaryenStructNewId */, + StructGet = 67 /* _BinaryenStructGetId */, + StructSet = 68 /* _BinaryenStructSetId */, + StructRMW = 69 /* _BinaryenStructRMWId */, + StructCmpxchg = 70 /* _BinaryenStructCmpxchgId */, + ArrayNew = 71 /* _BinaryenArrayNewId */, + ArrayNewData = 72 /* _BinaryenArrayNewDataId */, + ArrayNewElem = 73 /* _BinaryenArrayNewElemId */, + ArrayNewFixed = 74 /* _BinaryenArrayNewFixedId */, + ArrayGet = 75 /* _BinaryenArrayGetId */, + ArraySet = 76 /* _BinaryenArraySetId */, + ArrayLen = 77 /* _BinaryenArrayLenId */, + ArrayCopy = 78 /* _BinaryenArrayCopyId */, + ArrayFill = 79 /* _BinaryenArrayFillId */, + ArrayInitData = 80 /* _BinaryenArrayInitDataId */, + ArrayInitElem = 81 /* _BinaryenArrayInitElemId */, + RefAs = 82 /* _BinaryenRefAsId */, + StringNew = 83 /* _BinaryenStringNewId */, + StringConst = 84 /* _BinaryenStringConstId */, + StringMeasure = 85 /* _BinaryenStringMeasureId */, + StringEncode = 86 /* _BinaryenStringEncodeId */, + StringConcat = 87 /* _BinaryenStringConcatId */, + StringEq = 88 /* _BinaryenStringEqId */, + StringWTF16Get = 89 /* _BinaryenStringWTF16GetId */, StringSliceWTF = 90 /* _BinaryenStringSliceWTFId */, - StringSliceIter = 91 /* _BinaryenStringSliceIterId */, - ResumeId = 92 /* _BinaryenResumeId */ + ContNew = 91 /* _BinaryenContNewId */, + ContBind = 92 /* _BinaryenContBindId */, + Suspend = 93 /* _BinaryenSuspendId */, + Resume = 94 /* _BinaryenResumeId */, + ResumeThrow = 95 /* _BinaryenResumeThrowId */, + StackSwitch = 96 /* _BinaryenStackSwitchId */ } /** Binaryen external kind constants. */ @@ -512,97 +511,95 @@ export const enum UnaryOp { AllTrueI64x2 = 83 /* _BinaryenAllTrueVecI64x2 */, /** i64x2.bitmask */ BitmaskI64x2 = 84 /* _BinaryenBitmaskVecI64x2 */, + // FIXME FIXME FIXME DONT FORGET TODO: F16 (not in C API yet) /** f32x4.abs */ - AbsF32x4 = 85 /* _BinaryenAbsVecF32x4 */, + AbsF32x4 = 92 /* _BinaryenAbsVecF32x4 */, /** f32x4.neg */ - NegF32x4 = 86 /* _BinaryenNegVecF32x4 */, + NegF32x4 = 93 /* _BinaryenNegVecF32x4 */, /** f32x4.sqrt */ - SqrtF32x4 = 87 /* _BinaryenSqrtVecF32x4 */, + SqrtF32x4 = 94 /* _BinaryenSqrtVecF32x4 */, /** f32x4.ceil */ - CeilF32x4 = 88 /* _BinaryenCeilVecF32x4 */, + CeilF32x4 = 95 /* _BinaryenCeilVecF32x4 */, /** f32x4.floor */ - FloorF32x4 = 89 /* _BinaryenFloorVecF32x4 */, + FloorF32x4 = 96 /* _BinaryenFloorVecF32x4 */, /** f32x4.trunc */ - TruncF32x4 = 90 /* BinaryenTruncVecF32x4 */, + TruncF32x4 = 97 /* _BinaryenTruncVecF32x4 */, /** f32x4.nearest */ - NearestF32x4 = 91 /* BinaryenNearestVecF32x4 */, + NearestF32x4 = 98 /* _BinaryenNearestVecF32x4 */, /** f64x2.abs */ - AbsF64x2 = 92 /* _BinaryenAbsVecF64x2 */, + AbsF64x2 = 99 /* _BinaryenAbsVecF64x2 */, /** f64x2.neg */ - NegF64x2 = 93 /* _BinaryenNegVecF64x2 */, + NegF64x2 = 100 /* _BinaryenNegVecF64x2 */, /** f64x2.sqrt */ - SqrtF64x2 = 94 /* _BinaryenSqrtVecF64x2 */, + SqrtF64x2 = 101 /* _BinaryenSqrtVecF64x2 */, /** f64x2.ceil */ - CeilF64x2 = 95 /* _BinaryenCeilVecF64x2 */, + CeilF64x2 = 102 /* _BinaryenCeilVecF64x2 */, /** f64x2.floor */ - FloorF64x2 = 96 /* _BinaryenFloorVecF64x2 */, + FloorF64x2 = 103 /* _BinaryenFloorVecF64x2 */, /** f64x2.trunc */ - TruncF64x2 = 97 /* _BinaryenTruncVecF64x2 */, + TruncF64x2 = 104 /* _BinaryenTruncVecF64x2 */, /** f64x2.nearest */ - NearestF64x2 = 98 /* _BinaryenNearestVecF64x2 */, + NearestF64x2 = 105 /* _BinaryenNearestVecF64x2 */, /** i16x8.extadd_pairwise_i8x16_s */ - ExtaddPairwiseI8x16ToI16x8 = 99 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, + ExtaddPairwiseI8x16ToI16x8 = 106 /* _BinaryenExtAddPairwiseSVecI8x16ToI16x8 */, /** i16x8.extadd_pairwise.i8x16_u */ - ExtaddPairwiseU8x16ToU16x8 = 100 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, + ExtaddPairwiseU8x16ToU16x8 = 107 /* _BinaryenExtAddPairwiseUVecI8x16ToI16x8 */, /** i32x4.extadd_pairwise.i16x8_s */ - ExtaddPairwiseI16x8ToI32x4 = 101 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, + ExtaddPairwiseI16x8ToI32x4 = 108 /* _BinaryenExtAddPairwiseSVecI16x8ToI32x4 */, /** i32x4.extadd_pairwise.i64x8_u */ - ExtaddPairwiseU16x8ToU32x4 = 102 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, + ExtaddPairwiseU16x8ToU32x4 = 109 /* _BinaryenExtAddPairwiseUVecI16x8ToI32x4 */, /** i32x4.trunc_sat_f32x4_s */ - TruncSatF32x4ToI32x4 = 103 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, + TruncSatF32x4ToI32x4 = 110 /* _BinaryenTruncSatSVecF32x4ToVecI32x4 */, /** i32x4.trunc_sat_f32x4_u */ - TruncSatF32x4ToU32x4 = 104 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, + TruncSatF32x4ToU32x4 = 111 /* _BinaryenTruncSatUVecF32x4ToVecI32x4 */, /** f32x4.convert_i32x4_s */ - ConvertI32x4ToF32x4 = 105 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, + ConvertI32x4ToF32x4 = 112 /* _BinaryenConvertSVecI32x4ToVecF32x4 */, /** f32x4.convert_i32x4_u */ - ConvertU32x4ToF32x4 = 106 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, + ConvertU32x4ToF32x4 = 113 /* _BinaryenConvertUVecI32x4ToVecF32x4 */, /** i16x8.extend_low_i8x16_s */ - ExtendLowI8x16ToI16x8 = 107 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, + ExtendLowI8x16ToI16x8 = 114 /* _BinaryenExtendLowSVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_s */ - ExtendHighI8x16ToI16x8 = 108 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, + ExtendHighI8x16ToI16x8 = 115 /* _BinaryenExtendHighSVecI8x16ToVecI16x8 */, /** i16x8.extend_low_i8x16_u */ - ExtendLowU8x16ToU16x8 = 109 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, + ExtendLowU8x16ToU16x8 = 116 /* _BinaryenExtendLowUVecI8x16ToVecI16x8 */, /** i16x8.extend_high_i8x16_u */ - ExtendHighU8x16ToU16x8 = 110 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, + ExtendHighU8x16ToU16x8 = 117 /* _BinaryenExtendHighUVecI8x16ToVecI16x8 */, /** i32x4.extend_low_i16x8_s */ - ExtendLowI16x8ToI32x4 = 111 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, + ExtendLowI16x8ToI32x4 = 118 /* _BinaryenExtendLowSVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_s */ - ExtendHighI16x8ToI32x4 = 112 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, + ExtendHighI16x8ToI32x4 = 119 /* _BinaryenExtendHighSVecI16x8ToVecI32x4 */, /** i32x4.extend_low_i16x8_u */ - ExtendLowU16x8ToU32x4 = 113 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, + ExtendLowU16x8ToU32x4 = 120 /* _BinaryenExtendLowUVecI16x8ToVecI32x4 */, /** i32x4.extend_high_i16x8_u */ - ExtendHighU16x8ToU32x4 = 114 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, + ExtendHighU16x8ToU32x4 = 121 /* _BinaryenExtendHighUVecI16x8ToVecI32x4 */, /** i64x2.extend_low_i32x4_s */ - ExtendLowI32x4ToI64x2 = 115 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, + ExtendLowI32x4ToI64x2 = 122 /* _BinaryenExtendLowSVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_s */ - ExtendHighI32x4ToI64x2 = 116 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, + ExtendHighI32x4ToI64x2 = 123 /* _BinaryenExtendHighSVecI32x4ToVecI64x2 */, /** i64x2.extend_low_i32x4_u */ - ExtendLowU32x4ToU64x2 = 117 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, + ExtendLowU32x4ToU64x2 = 124 /* _BinaryenExtendLowUVecI32x4ToVecI64x2 */, /** i64x2.extend_high_i32x4_u */ - ExtendHighU32x4ToU64x2 = 118 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, + ExtendHighU32x4ToU64x2 = 125 /* _BinaryenExtendHighUVecI32x4ToVecI64x2 */, /** f32x4.convert_i32x4_s */ - ConvertLowI32x4ToF64x2 = 119 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, + ConvertLowI32x4ToF64x2 = 126 /* _BinaryenConvertLowSVecI32x4ToVecF64x2 */, /** f32x4.convert_i32x4_u */ - ConvertLowU32x4ToF64x2 = 120 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, + ConvertLowU32x4ToF64x2 = 127 /* _BinaryenConvertLowUVecI32x4ToVecF64x2 */, /** i32x4.trunc_sat_f64x2_s_zero */ - TruncSatF64x2ToI32x4Zero = 121 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, + TruncSatF64x2ToI32x4Zero = 128 /* _BinaryenTruncSatZeroSVecF64x2ToVecI32x4 */, /** i32x4.trunc_sat_f64x2_u_zero */ - TruncSatF64x2ToU32x4Zero = 122 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, + TruncSatF64x2ToU32x4Zero = 129 /* _BinaryenTruncSatZeroUVecF64x2ToVecI32x4 */, /** f32x4.demote_f64x2_zero */ - DemoteZeroF64x2ToF32x4 = 123 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, + DemoteZeroF64x2ToF32x4 = 130 /* _BinaryenDemoteZeroVecF64x2ToVecF32x4 */, /** f64x2.promote_low_f32x4 */ - PromoteLowF32x4ToF64x2 = 124 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + PromoteLowF32x4ToF64x2 = 131 /* _BinaryenPromoteLowVecF32x4ToVecF64x2 */, /** i32x4.relaxed_trunc_f32x4_s */ - RelaxedTruncF32x4ToI32x4 = 125 /* TODO_BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToI32x4 = 132 /* _BinaryenRelaxedTruncSVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f32x4_u */ - RelaxedTruncF32x4ToU32x4 = 126 /* TODO_BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, + RelaxedTruncF32x4ToU32x4 = 133 /* _BinaryenRelaxedTruncUVecF32x4ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_s_zero */ - RelaxedTruncF64x2ToI32x4Zero = 127 /* TODO_BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToI32x4Zero = 134 /* _BinaryenRelaxedTruncZeroSVecF64x2ToVecI32x4 */, /** i32x4.relaxed_trunc_f64x2_u_zero */ - RelaxedTruncF64x2ToU32x4Zero = 128 /* TODO_BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, + RelaxedTruncF64x2ToU32x4Zero = 135 /* _BinaryenRelaxedTruncZeroUVecF64x2ToVecI32x4 */, _last = RelaxedTruncF64x2ToU32x4Zero, @@ -848,190 +845,187 @@ export const enum BinaryOp { /** i64x2.ge_s */ GeI64x2 = 111 /* _BinaryenGeSVecI64x2 */, /** f32x4.eq */ - EqF32x4 = 112 /* _BinaryenEqVecF32x4 */, + EqF32x4 = 118 /* _BinaryenEqVecF32x4 */, /** f32x4.ne */ - NeF32x4 = 113 /* _BinaryenNeVecF32x4 */, + NeF32x4 = 119 /* _BinaryenNeVecF32x4 */, /** f32x4.lt */ - LtF32x4 = 114 /* _BinaryenLtVecF32x4 */, + LtF32x4 = 120 /* _BinaryenLtVecF32x4 */, /** f32x4.gt */ - GtF32x4 = 115 /* _BinaryenGtVecF32x4 */, + GtF32x4 = 121 /* _BinaryenGtVecF32x4 */, /** f32x4.le */ - LeF32x4 = 116 /* _BinaryenLeVecF32x4 */, + LeF32x4 = 122 /* _BinaryenLeVecF32x4 */, /** f32x4.ge */ - GeF32x4 = 117 /* _BinaryenGeVecF32x4 */, + GeF32x4 = 123 /* _BinaryenGeVecF32x4 */, /** f64x2.eq */ - EqF64x2 = 118 /* _BinaryenEqVecF64x2 */, + EqF64x2 = 124 /* _BinaryenEqVecF64x2 */, /** f64x2.ne */ - NeF64x2 = 119 /* _BinaryenNeVecF64x2 */, + NeF64x2 = 125 /* _BinaryenNeVecF64x2 */, /** f64x2.lt */ - LtF64x2 = 120 /* _BinaryenLtVecF64x2 */, + LtF64x2 = 126 /* _BinaryenLtVecF64x2 */, /** f64x2.gt */ - GtF64x2 = 121 /* _BinaryenGtVecF64x2 */, + GtF64x2 = 127 /* _BinaryenGtVecF64x2 */, /** f64x2.le */ - LeF64x2 = 122 /* _BinaryenLeVecF64x2 */, + LeF64x2 = 128 /* _BinaryenLeVecF64x2 */, /** f64x2.ge */ - GeF64x2 = 123 /* _BinaryenGeVecF64x2 */, + GeF64x2 = 129 /* _BinaryenGeVecF64x2 */, /** v128.and */ - AndV128 = 124 /* _BinaryenAndVec128 */, + AndV128 = 130 /* _BinaryenAndVec128 */, /** v128.or */ - OrV128 = 125 /* _BinaryenOrVec128 */, + OrV128 = 131 /* _BinaryenOrVec128 */, /** v128.xor */ - XorV128 = 126 /* _BinaryenXorVec128 */, + XorV128 = 132 /* _BinaryenXorVec128 */, /** v128.andnot */ - AndnotV128 = 127 /* _BinaryenAndNotVec128 */, + AndnotV128 = 133 /* _BinaryenAndNotVec128 */, /** i8x16.add */ - AddI8x16 = 128 /* _BinaryenAddVecI8x16 */, + AddI8x16 = 134 /* _BinaryenAddVecI8x16 */, /** i8x16.add_sat_s */ - AddSatI8x16 = 129 /* _BinaryenAddSatSVecI8x16 */, + AddSatI8x16 = 135 /* _BinaryenAddSatSVecI8x16 */, /** i8x16.add_sat_u */ - AddSatU8x16 = 130 /* _BinaryenAddSatUVecI8x16 */, + AddSatU8x16 = 136 /* _BinaryenAddSatUVecI8x16 */, /** i8x16.sub */ - SubI8x16 = 131 /* _BinaryenSubVecI8x16 */, + SubI8x16 = 137 /* _BinaryenSubVecI8x16 */, /** i8x16.sub_sat_s */ - SubSatI8x16 = 132 /* _BinaryenSubSatSVecI8x16 */, + SubSatI8x16 = 138 /* _BinaryenSubSatSVecI8x16 */, /** i8x16.sub_sat_u */ - SubSatU8x16 = 133 /* _BinaryenSubSatUVecI8x16 */, + SubSatU8x16 = 139 /* _BinaryenSubSatUVecI8x16 */, /** i8x16.min_s */ - MinI8x16 = 134 /* _BinaryenMinSVecI8x16 */, + MinI8x16 = 140 /* _BinaryenMinSVecI8x16 */, /** i8x16.min_u */ - MinU8x16 = 135 /* _BinaryenMinUVecI8x16 */, + MinU8x16 = 141 /* _BinaryenMinUVecI8x16 */, /** i8x16.max_s */ - MaxI8x16 = 136 /* _BinaryenMaxSVecI8x16 */, + MaxI8x16 = 142 /* _BinaryenMaxSVecI8x16 */, /** i8x16.max_u */ - MaxU8x16 = 137 /* _BinaryenMaxUVecI8x16 */, + MaxU8x16 = 143 /* _BinaryenMaxUVecI8x16 */, /** i8x16.avgr_u */ - AvgrU8x16 = 138 /* _BinaryenAvgrUVecI8x16 */, + AvgrU8x16 = 144 /* _BinaryenAvgrUVecI8x16 */, /** i16x8.add */ - AddI16x8 = 139 /* _BinaryenAddVecI16x8 */, + AddI16x8 = 145 /* _BinaryenAddVecI16x8 */, /** i16x8.add_sat_s */ - AddSatI16x8 = 140 /* _BinaryenAddSatSVecI16x8 */, + AddSatI16x8 = 146 /* _BinaryenAddSatSVecI16x8 */, /** i16x8.add_sat_u */ - AddSatU16x8 = 141 /* _BinaryenAddSatUVecI16x8 */, + AddSatU16x8 = 147 /* _BinaryenAddSatUVecI16x8 */, /** i16x8.sub */ - SubI16x8 = 142 /* _BinaryenSubVecI16x8 */, + SubI16x8 = 148 /* _BinaryenSubVecI16x8 */, /** i16x8.sub_sat_s */ - SubSatI16x8 = 143 /* _BinaryenSubSatSVecI16x8 */, + SubSatI16x8 = 149 /* _BinaryenSubSatSVecI16x8 */, /** i16x8.sub_sat_u */ - SubSatU16x8 = 144 /* _BinaryenSubSatUVecI16x8 */, + SubSatU16x8 = 150 /* _BinaryenSubSatUVecI16x8 */, /** i16x8.mul */ - MulI16x8 = 145 /* _BinaryenMulVecI16x8 */, + MulI16x8 = 151 /* _BinaryenMulVecI16x8 */, /** i16x8.min_s */ - MinI16x8 = 146 /* _BinaryenMinSVecI16x8 */, + MinI16x8 = 152 /* _BinaryenMinSVecI16x8 */, /** i16x8.min_u */ - MinU16x8 = 147 /* _BinaryenMinUVecI16x8 */, + MinU16x8 = 153 /* _BinaryenMinUVecI16x8 */, /** i16x8.max_s */ - MaxI16x8 = 148 /* _BinaryenMaxSVecI16x8 */, + MaxI16x8 = 154 /* _BinaryenMaxSVecI16x8 */, /** i16x8.max_u */ - MaxU16x8 = 149 /* _BinaryenMaxUVecI16x8 */, + MaxU16x8 = 155 /* _BinaryenMaxUVecI16x8 */, /** i16x8.avgr_u */ - AvgrU16x8 = 150 /* _BinaryenAvgrUVecI16x8 */, + AvgrU16x8 = 156 /* _BinaryenAvgrUVecI16x8 */, /** i16x8.q15mulr_sat_s */ - Q15mulrSatI16x8 = 151 /* _BinaryenQ15MulrSatSVecI16x8 */, + Q15mulrSatI16x8 = 157 /* _BinaryenQ15MulrSatSVecI16x8 */, /** i16x8.extmul_low_i8x16_s */ - ExtmulLowI16x8 = 152 /* _BinaryenExtMulLowSVecI16x8 */, + ExtmulLowI16x8 = 158 /* _BinaryenExtMulLowSVecI16x8 */, /** i16x8.extmul_high_i8x16_s */ - ExtmulHighI16x8 = 153 /* _BinaryenExtMulHighSVecI16x8 */, + ExtmulHighI16x8 = 159 /* _BinaryenExtMulHighSVecI16x8 */, /** i16x8.extmul_low_i8x16_u */ - ExtmulLowU16x8 = 154 /* _BinaryenExtMulLowUVecI16x8 */, + ExtmulLowU16x8 = 160 /* _BinaryenExtMulLowUVecI16x8 */, /** i16x8.extmul_high_i8x16_u */ - ExtmulHighU16x8 = 155 /* _BinaryenExtMulHighUVecI16x8 */, + ExtmulHighU16x8 = 161 /* _BinaryenExtMulHighUVecI16x8 */, /** i32x4.add */ - AddI32x4 = 156 /* _BinaryenAddVecI32x4 */, + AddI32x4 = 162 /* _BinaryenAddVecI32x4 */, /** i32x4.sub */ - SubI32x4 = 157 /* _BinaryenSubVecI32x4 */, + SubI32x4 = 163 /* _BinaryenSubVecI32x4 */, /** i32x4.mul */ - MulI32x4 = 158 /* _BinaryenMulVecI32x4 */, + MulI32x4 = 164 /* _BinaryenMulVecI32x4 */, /** i32x4.min_s */ - MinI32x4 = 159 /* _BinaryenMinSVecI32x4 */, + MinI32x4 = 165 /* _BinaryenMinSVecI32x4 */, /** i32x4.min_u */ - MinU32x4 = 160 /* _BinaryenMinUVecI32x4 */, + MinU32x4 = 166 /* _BinaryenMinUVecI32x4 */, /** i32x4.max_s */ - MaxI32x4 = 161 /* _BinaryenMaxSVecI32x4 */, + MaxI32x4 = 167 /* _BinaryenMaxSVecI32x4 */, /** i32x4.max_u */ - MaxU32x4 = 162 /* _BinaryenMaxUVecI32x4 */, + MaxU32x4 = 168 /* _BinaryenMaxUVecI32x4 */, /** i32x4.dot_i16x8_s */ - DotI16x8 = 163 /* _BinaryenDotSVecI16x8ToVecI32x4 */, + DotI16x8 = 169 /* _BinaryenDotSVecI16x8ToVecI32x4 */, /** i32x4.extmul_low_i16x8_s */ - ExtmulLowI32x4 = 164 /* _BinaryenExtMulLowSVecI32x4 */, + ExtmulLowI32x4 = 170 /* _BinaryenExtMulLowSVecI32x4 */, /** i32x4.extmul_high_i16x8_s */ - ExtmulHighI32x4 = 165 /* _BinaryenExtMulHighSVecI32x4 */, + ExtmulHighI32x4 = 171 /* _BinaryenExtMulHighSVecI32x4 */, /** i32x4.extmul_low_i16x8_u */ - ExtmulLowU32x4 = 166 /* _BinaryenExtMulLowUVecI32x4 */, + ExtmulLowU32x4 = 172 /* _BinaryenExtMulLowUVecI32x4 */, /** i32x4.extmul_high_i16x8_u */ - ExtmulHighU32x4 = 167 /* _BinaryenExtMulHighUVecI32x4 */, + ExtmulHighU32x4 = 173 /* _BinaryenExtMulHighUVecI32x4 */, /** i64x2.add */ - AddI64x2 = 168 /* _BinaryenAddVecI64x2 */, + AddI64x2 = 174 /* _BinaryenAddVecI64x2 */, /** i64x2.sub */ - SubI64x2 = 169 /* _BinaryenSubVecI64x2 */, + SubI64x2 = 175 /* _BinaryenSubVecI64x2 */, /** i64x2.mul */ - MulI64x2 = 170 /* _BinaryenMulVecI64x2 */, + MulI64x2 = 176 /* _BinaryenMulVecI64x2 */, /** i64x2.extmul_low_i32x4_s */ - ExtmulLowI64x2 = 171 /* _BinaryenExtMulLowSVecI64x2 */, + ExtmulLowI64x2 = 177 /* _BinaryenExtMulLowSVecI64x2 */, /** i64x2.extmul_high_i32x4_s */ - ExtmulHighI64x2 = 172 /* _BinaryenExtMulHighSVecI64x2 */, + ExtmulHighI64x2 = 178 /* _BinaryenExtMulHighSVecI64x2 */, /** i64x2.extmul_low_i32x4_u */ - ExtmulLowU64x2 = 173 /* _BinaryenExtMulLowUVecI64x2 */, + ExtmulLowU64x2 = 179 /* _BinaryenExtMulLowUVecI64x2 */, /** i64x2.extmul_high_i32x4_u */ - ExtmulHighU64x2 = 174 /* _BinaryenExtMulHighUVecI64x2 */, + ExtmulHighU64x2 = 180 /* _BinaryenExtMulHighUVecI64x2 */, /** f32x4.add */ - AddF32x4 = 175 /* _BinaryenAddVecF32x4 */, + AddF32x4 = 189 /* _BinaryenAddVecF32x4 */, /** f32x4.sub */ - SubF32x4 = 176 /* _BinaryenSubVecF32x4 */, + SubF32x4 = 190 /* _BinaryenSubVecF32x4 */, /** f32x4.mul */ - MulF32x4 = 177 /* _BinaryenMulVecF32x4 */, + MulF32x4 = 191 /* _BinaryenMulVecF32x4 */, /** f32x4.div */ - DivF32x4 = 178 /* _BinaryenDivVecF32x4 */, + DivF32x4 = 192 /* _BinaryenDivVecF32x4 */, /** f32x4.min */ - MinF32x4 = 179 /* _BinaryenMinVecF32x4 */, + MinF32x4 = 193 /* _BinaryenMinVecF32x4 */, /** f32x4.max */ - MaxF32x4 = 180 /* _BinaryenMaxVecF32x4 */, + MaxF32x4 = 194 /* _BinaryenMaxVecF32x4 */, /** f32x4.pmin */ - PminF32x4 = 181 /* _BinaryenPMinVecF32x4 */, + PminF32x4 = 195 /* _BinaryenPMinVecF32x4 */, /** f32x4.pmax */ - PmaxF32x4 = 182 /* _BinaryenPMaxVecF32x4 */, + PmaxF32x4 = 196 /* _BinaryenPMaxVecF32x4 */, /** f64x2.add */ - AddF64x2 = 183 /* _BinaryenAddVecF64x2 */, + AddF64x2 = 197 /* _BinaryenAddVecF64x2 */, /** f64x2.sub */ - SubF64x2 = 184 /* _BinaryenSubVecF64x2 */, + SubF64x2 = 198 /* _BinaryenSubVecF64x2 */, /** f64x2.mul */ - MulF64x2 = 185 /* _BinaryenMulVecF64x2 */, + MulF64x2 = 199 /* _BinaryenMulVecF64x2 */, /** f64x2.div */ - DivF64x2 = 186 /* _BinaryenDivVecF64x2 */, + DivF64x2 = 200 /* _BinaryenDivVecF64x2 */, /** f64x2.min */ - MinF64x2 = 187 /* _BinaryenMinVecF64x2 */, + MinF64x2 = 201 /* _BinaryenMinVecF64x2 */, /** f64x2.max */ - MaxF64x2 = 188 /* _BinaryenMaxVecF64x2 */, + MaxF64x2 = 202 /* _BinaryenMaxVecF64x2 */, /** f64x2.pmin */ - PminF64x2 = 189 /* _BinaryenPMinVecF64x2 */, + PminF64x2 = 203 /* _BinaryenPMinVecF64x2 */, /** f64x2.pmax */ - PmaxF64x2 = 190 /* _BinaryenPMaxVecF64x2 */, + PmaxF64x2 = 204 /* _BinaryenPMaxVecF64x2 */, /** i8x16.narrow_i16x8_s */ - NarrowI16x8ToI8x16 = 191 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, + NarrowI16x8ToI8x16 = 205 /* _BinaryenNarrowSVecI16x8ToVecI8x16 */, /** i8x16.narrow_i16x8_u */ - NarrowU16x8ToU8x16 = 192 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, + NarrowU16x8ToU8x16 = 206 /* _BinaryenNarrowUVecI16x8ToVecI8x16 */, /** i16x8.narrow_i32x4_s */ - NarrowI32x4ToI16x8 = 193 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, + NarrowI32x4ToI16x8 = 207 /* _BinaryenNarrowSVecI32x4ToVecI16x8 */, /** i16x8.narrow_i32x4_u */ - NarrowU32x4ToU16x8 = 194 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, + NarrowU32x4ToU16x8 = 208 /* _BinaryenNarrowUVecI32x4ToVecI16x8 */, /** i8x16.swizzle */ - SwizzleI8x16 = 195 /* _BinaryenSwizzleVecI8x16 */, - - // see: https://github.com/WebAssembly/relaxed-simd - + SwizzleI8x16 = 209 /* _BinaryenSwizzleVecI8x16 */, /** i8x16.relaxed_swizzle */ - RelaxedSwizzleI8x16 = 196 /* TODO_BinaryenRelaxedSwizzleVecI8x16 */, + RelaxedSwizzleI8x16 = 210 /* _BinaryenRelaxedSwizzleVecI8x16 */, /** f32x4.relaxed_min */ - RelaxedMinF32x4 = 197 /* TODO_BinaryenRelaxedMinVecF32x4 */, + RelaxedMinF32x4 = 211 /* _BinaryenRelaxedMinVecF32x4 */, /** f32x4.relaxed_max */ - RelaxedMaxF32x4 = 198 /* TODO_BinaryenRelaxedMaxVecF32x4 */, + RelaxedMaxF32x4 = 212 /* _BinaryenRelaxedMaxVecF32x4 */, /** f64x2.relaxed_min */ - RelaxedMinF64x2 = 199 /* TODO_BinaryenRelaxedMinVecF64x2 */, + RelaxedMinF64x2 = 213 /* _BinaryenRelaxedMinVecF64x2 */, /** f64x2.relaxed_max */ - RelaxedMaxF64x2 = 200 /* TODO_BinaryenRelaxedMaxVecF64x2 */, + RelaxedMaxF64x2 = 214 /* _BinaryenRelaxedMaxVecF64x2 */, /** i16x8.relaxed_q15mulr_s */ - RelaxedQ15MulrI16x8 = 201 /* TODO_BinaryenRelaxedQ15MulrSVecI16x8 */, + RelaxedQ15MulrI16x8 = 215 /* _BinaryenRelaxedQ15MulrSVecI16x8 */, /** i16x8.relaxed_dot_i8x16_i7x16_s */ - RelaxedDotI8x16I7x16ToI16x8 = 202 /* TODO_BinaryenDotI8x16I7x16SToVecI16x8 */, + RelaxedDotI8x16I7x16ToI16x8 = 216 /* _BinaryenDotI8x16I7x16SToVecI16x8 */, _last = RelaxedDotI8x16I7x16ToI16x8, @@ -1120,9 +1114,9 @@ export const enum SIMDExtractOp { /** i32x4.extract_lane_u */ ExtractLaneI64x2 = 5 /* _BinaryenExtractLaneVecI64x2 */, /** i64x2.extract_lane_s */ - ExtractLaneF32x4 = 6 /* _BinaryenExtractLaneVecF32x4 */, + ExtractLaneF32x4 = 7 /* _BinaryenExtractLaneVecF32x4 */, /** i64x2.extract_lane_u */ - ExtractLaneF64x2 = 7 /* _BinaryenExtractLaneVecF64x2 */, + ExtractLaneF64x2 = 8 /* _BinaryenExtractLaneVecF64x2 */, } /** Binaryen SIMD replace operation constants. */ @@ -1136,9 +1130,9 @@ export const enum SIMDReplaceOp { /** i64x2.replace_lane */ ReplaceLaneI64x2 = 3 /* _BinaryenReplaceLaneVecI64x2 */, /** f32x4.replace_lane */ - ReplaceLaneF32x4 = 4 /* _BinaryenReplaceLaneVecF32x4 */, + ReplaceLaneF32x4 = 5 /* _BinaryenReplaceLaneVecF32x4 */, /** f64x2.replace_lane */ - ReplaceLaneF64x2 = 5 /* _BinaryenReplaceLaneVecF64x2 */ + ReplaceLaneF64x2 = 6 /* _BinaryenReplaceLaneVecF64x2 */ } /** Binaryen SIMD shift operation constants. */ @@ -1222,36 +1216,40 @@ export const enum SIMDTernaryOp { /** v128.bitselect */ Bitselect = 0 /* _BinaryenBitselectVec128 */, - // see: https://github.com/WebAssembly/relaxed-simd + // Relaxed SIMD for F16 + /** f16x8.relaxed_madd */ + RelaxedMaddVecF16x8 = 1 /* TODO_BinaryenRelaxedMaddVecF16x8 */, + /** f16x8.relaxed_nmadd */ + RelaxedNmaddVecF16x8 = 2 /* TODO_BinaryenRelaxedNmaddVecF16x8 */, /** f32x4.relaxed_madd */ - RelaxedMaddF32x4 = 1 /* TODO_BinaryenRelaxedFmaVecF32x4 */, + RelaxedMaddF32x4 = 3 /* _BinaryenRelaxedMaddVecF32x4 */, /** f32x4.relaxed_nmadd */ - RelaxedNmaddF32x4 = 2 /* TODO_BinaryenRelaxedFmsVecF32x4 */, + RelaxedNmaddF32x4 = 4 /* _BinaryenRelaxedNmaddVecF32x4 */, /** f64x2.relaxed_madd */ - RelaxedMaddF64x2 = 3 /* TODO_BinaryenRelaxedFmaVecF64x2 */, + RelaxedMaddF64x2 = 5 /* _BinaryenRelaxedMaddVecF64x2 */, /** f64x2.relaxed_nmadd */ - RelaxedNmaddF64x2 = 4 /* TODO_BinaryenRelaxedFmsVecF64x2 */, + RelaxedNmaddF64x2 = 6 /* _BinaryenRelaxedNmaddVecF64x2 */, /** i8x16.relaxed_laneselect */ - RelaxedLaneselectI8x16 = 5 /* TODO_BinaryenLaneselectI8x16 */, + RelaxedLaneselectI8x16 = 7 /* _BinaryenLaneselectI8x16 */, /** i16x8.relaxed_laneselect */ - RelaxedLaneselectI16x8 = 6 /* TODO_BinaryenLaneselectI16x8 */, + RelaxedLaneselectI16x8 = 8 /* _BinaryenLaneselectI16x8 */, /** i32x4.relaxed_laneselect */ - RelaxedLaneselectI32x4 = 7 /* TODO_BinaryenLaneselectI32x4 */, + RelaxedLaneselectI32x4 = 9 /* _BinaryenLaneselectI32x4 */, /** i64x2.relaxed_laneselect */ - RelaxedLaneselectI64x2 = 8 /* TODO_BinaryenLaneselectI64x2 */, + RelaxedLaneselectI64x2 = 10 /* _BinaryenLaneselectI64x2 */, /** i32x4.relaxed_dot_i8x16_i7x16_add_s */ - RelaxedDotI8x16I7x16AddToI32x4 = 9 /* TODO_BinaryenDotI8x16I7x16AddSToVecI32x4 */, + RelaxedDotI8x16I7x16AddToI32x4 = 11 /* _BinaryenDotI8x16I7x16AddSToVecI32x4 */, } /** Binaryen RefAs operation constants. */ export const enum RefAsOp { /** ref.as_non_null */ NonNull = 0 /* _BinaryenRefAsNonNull */, - /** extern.internalize */ - ExternInternalize = 1 /* _BinaryenRefAsExternInternalize */, - /** extern.externalize */ - ExternExternalize = 2 /* _BinaryenRefAsExternExternalize */ + /** any.convert_extern */ + ExternInternalize = 1 /* _BinaryenRefAsAnyConvertExtern */, + /** extern.convert_any */ + ExternExternalize = 2 /* _BinaryenRefAsExternConvertAny */ } /** Binaryen BrOn operation constants. */ @@ -1268,58 +1266,28 @@ export const enum BrOnOp { /** Binaryen StringNew operation constants. */ export const enum StringNewOp { - /** string.new_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringNewUTF8 */, - /** string.new_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringNewWTF8 */, - /** string.new_wtf8 replace */ - LossyUTF8 = 2 /* _BinaryenStringNewLossyUTF8 */, - /** string.new_wtf16 */ - WTF16 = 3 /* _BinaryenStringNewWTF16 */, - /** string.new_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringNewUTF8Array */, - /** string.new_wtf8_array wtf8 */ - WTF8Array = 5 /* _BinaryenStringNewWTF8Array */, /** string.new_wtf8_array replace */ - LossyUTF8Array = 6 /* _BinaryenStringNewLossyUTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringNewLossyUTF8Array */, /** string.new_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringNewWTF16Array */, + WTF16Array = 1 /* _BinaryenStringNewWTF16Array */, /** string.from_code_point */ - FromCodePoint = 8 /* _BinaryenStringNewFromCodePoint */ + FromCodePoint = 2 /* _BinaryenStringNewFromCodePoint */ } /** Binaryen StringMeasure operation constants. */ export const enum StringMeasureOp { /** string.measure_wtf8 utf8 */ UTF8 = 0 /* _BinaryenStringMeasureUTF8 */, - /** string.measure_wtf8 wtf8 */ - WTF8 = 1 /* _BinaryenStringMeasureWTF8 */, /** string.measure_wtf16 */ - WTF16 = 2 /* _BinaryenStringMeasureWTF16 */, - /** string.is_usv_sequence */ - IsUSV = 3 /* _BinaryenStringMeasureIsUSV */, - /** stringview_wtf16.length */ - WTF16View = 4 /* _BinaryenStringMeasureWTF16View */ + WTF16 = 1 /* _BinaryenStringMeasureWTF16 */, } /** Binaryen StringEncode operation constants. */ export const enum StringEncodeOp { - /** string.encode_wtf8 utf8 */ - UTF8 = 0 /* _BinaryenStringEncodeUTF8 */, - /** string.encode_lossy_utf8 utf8 */ - LossyUTF8 = 1 /* _BinaryenStringEncodeLossyUTF8 */, - /** string.encode_wtf8 wtf8 */ - WTF8 = 2 /* _BinaryenStringEncodeWTF8 */, - /** string.encode_wtf16 */ - WTF16 = 3 /* _BinaryenStringEncodeWTF16 */, - /** string.encode_wtf8_array utf8 */ - UTF8Array = 4 /* _BinaryenStringEncodeUTF8Array */, /** string.encode_lossy_utf8_array utf8 */ - LossyUTF8Array = 5 /* _BinaryenStringEncodeLossyUTF8Array */, - /** string.encode_wtf8_array wtf8 */ - WTF8Array = 6 /* _BinaryenStringEncodeWTF8Array */, + LossyUTF8Array = 0 /* _BinaryenStringEncodeLossyUTF8Array */, /** string.encode_wtf16_array */ - WTF16Array = 7 /* _BinaryenStringEncodeWTF16Array */ + WTF16Array = 1 /* _BinaryenStringEncodeWTF16Array */ } /** Binaryen StringEq operation constants. */ @@ -1330,37 +1298,10 @@ export const enum StringEqOp { Compare = 1 /* _BinaryenStringEqCompare */ } -/** Binaryen StringAs operation constants. */ -export const enum StringAsOp { - /** string.as_wtf8 */ - WTF8 = 0 /* _BinaryenStringAsWTF8 */, - /** string.as_wtf16 */ - WTF16 = 1 /* _BinaryenStringAsWTF16 */, - /** string.as_iter */ - Iter = 2 /* _BinaryenStringAsIter */ -} - -/** Binaryen StringIterMove operation constants. */ -export const enum StringIterMoveOp { - /** stringview_iter.advance */ - Advance = 0 /* _BinaryenStringIterMoveAdvance */, - /** stringview_iter.rewind */ - Rewind = 1 /* _BinaryenStringIterMoveRewind */ -} - -/** Binaryen StringSlice operation constants. */ -export const enum StringSliceWTFOp { - /** stringview_wtf8.slice */ - WTF8 = 0 /* _BinaryenStringSliceWTF8 */, - /** stringview_wtf16.slice */ - WTF16 = 1 /* _BinaryenStringSliceWTF16 */ -} - /** Binaryen expression runner flags. */ export const enum ExpressionRunnerFlags { Default = 0 /* _ExpressionRunnerFlagsDefault */, - PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */, - TraverseCalls = 2 /* _ExpressionRunnerFlagsTraverseCalls */ + PreserveSideeffects = 1 /* _ExpressionRunnerFlagsPreserveSideeffects */ } export class MemorySegment { @@ -1846,10 +1787,9 @@ export class Module { select( ifTrue: ExpressionRef, ifFalse: ExpressionRef, - condition: ExpressionRef, - type: TypeRef + condition: ExpressionRef ): ExpressionRef { - return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse, type); + return binaryen._BinaryenSelect(this.ref, condition, ifTrue, ifFalse); } switch( @@ -2124,7 +2064,7 @@ export class Module { type: TypeRef ): ExpressionRef { let cStr = this.allocStringCached(name); - return binaryen._BinaryenRefFunc(this.ref, cStr, type); + return binaryen._BinaryenRefFunc(this.ref, cStr, binaryen._BinaryenTypeGetHeapType(type)); } i31_new( @@ -2406,36 +2346,43 @@ export class Module { name: string = CommonNames.DefaultMemory, shared: bool = false ): void { - let cStr1 = this.allocStringCached(exportName); - let cStr2 = this.allocStringCached(name); + let cExportName = this.allocStringCached(exportName); + let cName = this.allocStringCached(name); let k = segments.length; let segs = new Array(k); - let psvs = new Uint8Array(k); - let offs = new Array(k); - let sizs = new Array(k); + let isPassive = new Uint8Array(k); + let offsets = new Array(k); + let sizes = new Array(k); for (let i = 0; i < k; ++i) { let segment = unchecked(segments[i]); let buffer = segment.buffer; let offset = segment.offset; unchecked(segs[i] = allocU8Array(buffer)); - unchecked(psvs[i] = 0); // no passive segments currently - unchecked(offs[i] = target == Target.Wasm64 + unchecked(isPassive[i] = 0); // no passive segments currently + unchecked(offsets[i] = target == Target.Wasm64 ? this.i64(i64_low(offset), i64_high(offset)) : this.i32(i64_low(offset)) ); - unchecked(sizs[i] = buffer.length); + unchecked(sizes[i] = buffer.length); } - let cArr1 = allocPtrArray(segs); - let cArr2 = allocU8Array(psvs); - let cArr3 = allocPtrArray(offs); - let cArr4 = allocU32Array(sizs); + let cSegs = allocPtrArray(segs); + let cIsPassive = allocU8Array(isPassive); + let cOffsets = allocPtrArray(offsets); + let cSizes = allocU32Array(sizes); binaryen._BinaryenSetMemory( - this.ref, initial, maximum, cStr1, cArr1, cArr2, cArr3, cArr4, k, shared, false, cStr2 + this.ref, + initial, maximum, + cExportName, + 0, cSegs, cIsPassive, + cOffsets, cSizes, + k, + shared, false, + cName ); - binaryen._free(cArr4); - binaryen._free(cArr3); - binaryen._free(cArr2); - binaryen._free(cArr1); + binaryen._free(cSizes); + binaryen._free(cOffsets); + binaryen._free(cIsPassive); + binaryen._free(cSegs); for (let i = k - 1; i >= 0; --i) { binaryen._free(unchecked(segs[i])); } @@ -2603,6 +2550,7 @@ export class Module { } setFeatures(featureFlags: FeatureFlags): void { + if (featureFlags & FeatureFlags.BulkMemory) featureFlags |= FeatureFlags.BulkMemoryOpt; binaryen._BinaryenModuleSetFeatures(this.ref, featureFlags); } @@ -2874,7 +2822,7 @@ export class Module { toText(watFormat: bool = true): string { let textPtr = watFormat - ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref, true) + ? binaryen._BinaryenModuleAllocateAndWriteStackIR(this.ref) : binaryen._BinaryenModuleAllocateAndWriteText(this.ref); let text = readString(textPtr); if (textPtr) binaryen._free(textPtr); @@ -3833,15 +3781,6 @@ function tryEnsureBasicType(type: Type): TypeRef { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, type.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, type.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, type.is(TypeFlags.Nullable)); - } case TypeKind.Void: assert(false); // invalid here } return 0; // non-basic diff --git a/src/passes/pass.ts b/src/passes/pass.ts index c2daf98eb5..b61e17f1e8 100644 --- a/src/passes/pass.ts +++ b/src/passes/pass.ts @@ -208,32 +208,22 @@ import { _BinaryenArrayCopyGetSrcRef, _BinaryenArrayCopyGetSrcIndex, _BinaryenArrayCopyGetLength, - _BinaryenStringNewGetPtr, - _BinaryenStringNewGetLength, + _BinaryenStringNewGetRef, _BinaryenStringNewGetStart, _BinaryenStringNewGetEnd, _BinaryenStringMeasureGetRef, - _BinaryenStringEncodeGetPtr, - _BinaryenStringEncodeGetRef, + _BinaryenStringEncodeGetArray, + _BinaryenStringEncodeGetStr, _BinaryenStringEncodeGetStart, _BinaryenStringConcatGetLeft, _BinaryenStringConcatGetRight, _BinaryenStringEqGetLeft, _BinaryenStringEqGetRight, - _BinaryenStringAsGetRef, - _BinaryenStringWTF8AdvanceGetRef, - _BinaryenStringWTF8AdvanceGetPos, - _BinaryenStringWTF8AdvanceGetBytes, _BinaryenStringWTF16GetGetRef, _BinaryenStringWTF16GetGetPos, - _BinaryenStringIterNextGetRef, - _BinaryenStringIterMoveGetRef, - _BinaryenStringIterMoveGetNum, _BinaryenStringSliceWTFGetRef, _BinaryenStringSliceWTFGetStart, _BinaryenStringSliceWTFGetEnd, - _BinaryenStringSliceIterGetRef, - _BinaryenStringSliceIterGetNum, _BinaryenCallRefSetOperandAt, _BinaryenCallRefSetTarget, _BinaryenRefTestSetRef, @@ -257,32 +247,22 @@ import { _BinaryenArrayCopySetSrcIndex, _BinaryenArrayCopySetLength, _BinaryenRefAsSetValue, - _BinaryenStringNewSetPtr, - _BinaryenStringNewSetLength, + _BinaryenStringNewSetRef, _BinaryenStringNewSetStart, _BinaryenStringNewSetEnd, _BinaryenStringMeasureSetRef, - _BinaryenStringEncodeSetRef, - _BinaryenStringEncodeSetPtr, + _BinaryenStringEncodeSetStr, + _BinaryenStringEncodeSetArray, _BinaryenStringEncodeSetStart, _BinaryenStringConcatSetLeft, _BinaryenStringConcatSetRight, _BinaryenStringEqSetLeft, _BinaryenStringEqSetRight, - _BinaryenStringAsSetRef, - _BinaryenStringWTF8AdvanceSetRef, - _BinaryenStringWTF8AdvanceSetPos, - _BinaryenStringWTF8AdvanceSetBytes, _BinaryenStringWTF16GetSetRef, _BinaryenStringWTF16GetSetPos, - _BinaryenStringIterNextSetRef, - _BinaryenStringIterMoveSetRef, - _BinaryenStringIterMoveSetNum, _BinaryenStringSliceWTFSetRef, _BinaryenStringSliceWTFSetStart, _BinaryenStringSliceWTFSetEnd, - _BinaryenStringSliceIterSetRef, - _BinaryenStringSliceIterSetNum, _BinaryenArrayNewFixedSetValueAt } from "../glue/binaryen"; @@ -1183,9 +1163,7 @@ export abstract class Visitor { } case ExpressionId.StringNew: { this.stack.push(expr); - this.visit(_BinaryenStringNewGetPtr(expr)); - let length = _BinaryenStringNewGetLength(expr); // LM only - if (length) this.visit(length); + this.visit(_BinaryenStringNewGetRef(expr)); let start = _BinaryenStringNewGetStart(expr); // GC only if (start) this.visit(start); let end = _BinaryenStringNewGetEnd(expr); // GC only @@ -1209,8 +1187,8 @@ export abstract class Visitor { } case ExpressionId.StringEncode: { this.stack.push(expr); - this.visit(_BinaryenStringEncodeGetRef(expr)); - this.visit(_BinaryenStringEncodeGetPtr(expr)); + this.visit(_BinaryenStringEncodeGetStr(expr)); + this.visit(_BinaryenStringEncodeGetArray(expr)); let start = _BinaryenStringEncodeGetStart(expr); // GC only if (start) this.visit(start); assert(this.stack.pop() == expr); @@ -1233,22 +1211,6 @@ export abstract class Visitor { this.visitStringEq(expr); break; } - case ExpressionId.StringAs: { - this.stack.push(expr); - this.visit(_BinaryenStringAsGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringAs(expr); - break; - } - case ExpressionId.StringWTF8Advance: { - this.stack.push(expr); - this.visit(_BinaryenStringWTF8AdvanceGetRef(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetPos(expr)); - this.visit(_BinaryenStringWTF8AdvanceGetBytes(expr)); - assert(this.stack.pop() == expr); - this.visitStringWTF8Advance(expr); - break; - } case ExpressionId.StringWTF16Get: { this.stack.push(expr); this.visit(_BinaryenStringWTF16GetGetRef(expr)); @@ -1257,21 +1219,6 @@ export abstract class Visitor { this.visitStringWTF16Get(expr); break; } - case ExpressionId.StringIterNext: { - this.stack.push(expr); - this.visit(_BinaryenStringIterNextGetRef(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterNext(expr); - break; - } - case ExpressionId.StringIterMove: { - this.stack.push(expr); - this.visit(_BinaryenStringIterMoveGetRef(expr)); - this.visit(_BinaryenStringIterMoveGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringIterMove(expr); - break; - } case ExpressionId.StringSliceWTF: { this.stack.push(expr); this.visit(_BinaryenStringSliceWTFGetRef(expr)); @@ -1281,14 +1228,6 @@ export abstract class Visitor { this.visitStringSliceWTF(expr); break; } - case ExpressionId.StringSliceIter: { - this.stack.push(expr); - this.visit(_BinaryenStringSliceIterGetRef(expr)); - this.visit(_BinaryenStringSliceIterGetNum(expr)); - assert(this.stack.pop() == expr); - this.visitStringSliceIter(expr); - break; - } default: throw new Error("unexpected expression kind"); } this._currentExpression = previousExpression; @@ -2072,16 +2011,11 @@ export function replaceChild( break; } case ExpressionId.StringNew: { - let ptr = _BinaryenStringNewGetPtr(parent); + let ptr = _BinaryenStringNewGetRef(parent); if (ptr == search) { - _BinaryenStringNewSetPtr(parent, replacement); + _BinaryenStringNewSetRef(parent, replacement); return ptr; } - let length = _BinaryenStringNewGetLength(parent); - if (length == search) { - _BinaryenStringNewSetLength(parent, replacement); - return length; - } let start = _BinaryenStringNewGetStart(parent); if (start == search) { _BinaryenStringNewSetStart(parent, replacement); @@ -2106,14 +2040,14 @@ export function replaceChild( break; } case ExpressionId.StringEncode: { - let ref = _BinaryenStringEncodeGetRef(parent); + let ref = _BinaryenStringEncodeGetStr(parent); if (ref == search) { - _BinaryenStringEncodeSetRef(parent, replacement); + _BinaryenStringEncodeSetStr(parent, replacement); return ref; } - let ptr = _BinaryenStringEncodeGetPtr(parent); + let ptr = _BinaryenStringEncodeGetArray(parent); if (ptr == search) { - _BinaryenStringEncodeSetPtr(parent, replacement); + _BinaryenStringEncodeSetArray(parent, replacement); return ptr; } let start = _BinaryenStringEncodeGetStart(parent); @@ -2149,32 +2083,6 @@ export function replaceChild( } break; } - case ExpressionId.StringAs: { - let ref = _BinaryenStringAsGetRef(parent); - if (ref == search) { - _BinaryenStringAsSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringWTF8Advance: { - let ref = _BinaryenStringWTF8AdvanceGetRef(parent); - if (ref == search) { - _BinaryenStringWTF8AdvanceSetRef(parent, replacement); - return ref; - } - let pos = _BinaryenStringWTF8AdvanceGetPos(parent); - if (pos == search) { - _BinaryenStringWTF8AdvanceSetPos(parent, replacement); - return pos; - } - let bytes = _BinaryenStringWTF8AdvanceGetBytes(parent); - if (bytes == search) { - _BinaryenStringWTF8AdvanceSetBytes(parent, replacement); - return bytes; - } - break; - } case ExpressionId.StringWTF16Get: { let ref = _BinaryenStringWTF16GetGetRef(parent); if (ref == search) { @@ -2188,27 +2096,6 @@ export function replaceChild( } break; } - case ExpressionId.StringIterNext: { - let ref = _BinaryenStringIterNextGetRef(parent); - if (ref == search) { - _BinaryenStringIterNextSetRef(parent, replacement); - return ref; - } - break; - } - case ExpressionId.StringIterMove: { - let ref = _BinaryenStringIterMoveGetRef(parent); - if (ref == search) { - _BinaryenStringIterMoveSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringIterMoveGetNum(parent); - if (num == search) { - _BinaryenStringIterMoveSetNum(parent, replacement); - return num; - } - break; - } case ExpressionId.StringSliceWTF: { let ref = _BinaryenStringSliceWTFGetRef(parent); if (ref == search) { @@ -2227,19 +2114,6 @@ export function replaceChild( } break; } - case ExpressionId.StringSliceIter: { - let ref = _BinaryenStringSliceIterGetRef(parent); - if (ref == search) { - _BinaryenStringSliceIterSetRef(parent, replacement); - return ref; - } - let num = _BinaryenStringSliceIterGetNum(parent); - if (num == search) { - _BinaryenStringSliceIterSetNum(parent, replacement); - return num; - } - break; - } default: throw new Error("unexpected expression id"); } return 0; diff --git a/src/types.ts b/src/types.ts index 695b415b26..6a07f6fbc8 100644 --- a/src/types.ts +++ b/src/types.ts @@ -702,15 +702,6 @@ export class Type { case TypeKind.String: { return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.String, this.is(TypeFlags.Nullable)); } - case TypeKind.StringviewWTF8: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF8, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewWTF16: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewWTF16, this.is(TypeFlags.Nullable)); - } - case TypeKind.StringviewIter: { - return binaryen._BinaryenTypeFromHeapType(HeapTypeRef.StringviewIter, this.is(TypeFlags.Nullable)); - } case TypeKind.Void: return TypeRef.None; } // TODO: not used yet diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 5620f0ae0b..047c6ec389 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -105,38 +105,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index 84f831ff37..f59c4dfae8 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -100,35 +100,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -354,20 +356,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -581,25 +585,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -617,26 +623,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -961,25 +969,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -988,35 +998,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1106,6 +1118,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1174,13 +1187,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1249,13 +1264,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1263,19 +1280,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1283,25 +1302,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1470,37 +1491,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1519,29 +1542,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2357,6 +2382,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/binary.debug.wat b/tests/compiler/binary.debug.wat index 2925b7cf9f..889440048a 100644 --- a/tests/compiler/binary.debug.wat +++ b/tests/compiler/binary.debug.wat @@ -214,27 +214,29 @@ end end end - loop $while-continue|1 - local.get $e - if + block $while-break|1 + loop $while-continue|1 local.get $e - i32.const 1 - i32.and if - local.get $out + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x local.get $x i32.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -1436,38 +1438,40 @@ i32.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s - if - local.get $ux - local.get $uy - i32.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s if local.get $ux local.get $uy - i32.eq + i32.ge_u if - f32.const 0 - local.get $x - f32.mul - return + local.get $ux + local.get $uy + i32.eq + if + f32.const 0 + local.get $x + f32.mul + return + end + local.get $ux + local.get $uy + i32.sub + local.set $ux end local.get $ux - local.get $uy - i32.sub + i32.const 1 + i32.shl local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -2353,38 +2357,40 @@ i64.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s - if - local.get $ux - local.get $uy - i64.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s if local.get $ux local.get $uy - i64.eq + i64.ge_u if - f64.const 0 - local.get $x - f64.mul - return + local.get $ux + local.get $uy + i64.eq + if + f64.const 0 + local.get $x + f64.mul + return + end + local.get $ux + local.get $uy + i64.sub + local.set $ux end local.get $ux - local.get $uy - i64.sub + i64.const 1 + i64.shl local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|0 end end local.get $ux diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index cebadb0ee0..da749ddf9e 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -123,6 +123,7 @@ (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 + nop ) (func $bindings/esm/plainFunction (param $a i32) (param $b i32) (result i32) local.get $a @@ -205,35 +206,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -459,20 +462,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -686,25 +691,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -722,26 +729,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1066,25 +1075,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1093,35 +1104,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1211,6 +1224,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1279,13 +1293,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1354,13 +1370,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1368,19 +1386,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1388,25 +1408,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1575,37 +1597,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1624,29 +1648,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2806,14 +2832,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2882,6 +2910,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -5393,25 +5422,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index 67cb217984..ab17ddb86a 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -2400,322 +2400,325 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $0 + call $~lib/typedarray/Int16Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $1 + i32.store + local.get $2 + block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 3 + i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store + global.get $~lib/memory/__stack_pointer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $folding-inner1 end - br $folding-inner1 - end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.tee $2 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + call $~lib/typedarray/Int16Array#get:length local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u + i32.gt_s if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 + i32.const 0 + local.set $3 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + call $~lib/typedarray/Float32Array#get:length local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.gt_s if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + unreachable end i32.const 35072 i32.const 35120 @@ -3732,233 +3735,236 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $6 - local.get $4 - i32.store - local.get $6 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $4 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.add - local.set $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 + i32.store local.get $1 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $6 + local.get $3 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 35072 i32.const 35120 @@ -3978,243 +3984,246 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $4 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 268435455 + i32.gt_u if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $5 + local.get $3 + i32.store + local.get $5 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.add - local.set $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store local.get $1 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + unreachable end i32.const 35072 i32.const 35120 @@ -4231,248 +4240,251 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new local.tee $2 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=64 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + br $folding-inner1 end - br $folding-inner1 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + unreachable end i32.const 35072 i32.const 35120 diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index 25e76de235..dec95d83bd 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -121,35 +121,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -375,20 +377,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -602,25 +606,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -638,26 +644,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -982,25 +990,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1009,35 +1019,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1127,6 +1139,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1195,13 +1208,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1270,13 +1285,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1284,19 +1301,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1304,25 +1323,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1491,37 +1512,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1540,29 +1563,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2412,8 +2437,10 @@ return ) (func $bindings/noExportRuntime/takesNonPlainObject (param $obj i32) + nop ) (func $bindings/noExportRuntime/takesFunction (param $fn i32) + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2477,6 +2504,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2795,25 +2823,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 7eeb250556..78fe58c136 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1666,20 +1666,23 @@ block $bindings/noExportRuntime/NonPlainObject block $~lib/array/Array<~lib/array/Array> block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid + end + return end return end return end - return + unreachable end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index 7bf955aa6b..cdfb690794 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -123,6 +123,7 @@ (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 + nop ) (func $start:bindings/raw call $start:bindings/esm @@ -208,35 +209,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -462,20 +465,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -689,25 +694,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -725,26 +732,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1069,25 +1078,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1096,35 +1107,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1214,6 +1227,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1282,13 +1296,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1357,13 +1373,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1371,19 +1389,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1391,25 +1411,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1578,37 +1600,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1627,29 +1651,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2809,14 +2835,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2885,6 +2913,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -5396,25 +5425,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index baa08f6833..7d5d93f1b5 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -2400,322 +2400,325 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $2 + local.get $0 + call $~lib/typedarray/Int16Array#get:length local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + local.get $1 + i32.store + local.get $2 + block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 3 + i32.const 7 call $~lib/rt/itcms/__new local.tee $2 i32.store + global.get $~lib/memory/__stack_pointer + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 3 - i32.shl - local.tee $7 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 + br $folding-inner1 end - br $folding-inner1 - end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store + local.tee $2 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + call $~lib/typedarray/Int16Array#get:length local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u + i32.gt_s if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end end - end - i32.const 0 - local.set $3 - loop $for-loop|1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 + i32.const 0 + local.set $3 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 i32.store - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + call $~lib/typedarray/Float32Array#get:length local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u + i32.gt_s if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $3 + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u + if + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + unreachable end i32.const 35072 i32.const 35120 @@ -3732,233 +3735,236 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $6 - local.get $4 - i32.store - local.get $6 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $4 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.add - local.set $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 + i32.store local.get $1 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $6 + local.get $3 + local.get $1 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 35072 i32.const 35120 @@ -3978,243 +3984,246 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 local.get $0 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store + local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $4 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 268435455 + i32.gt_u if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $5 + local.get $3 + i32.store + local.get $5 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.add - local.set $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store local.get $1 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.add + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + unreachable end i32.const 35072 i32.const 35120 @@ -4231,248 +4240,251 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 call $~lib/rt/itcms/__new local.tee $2 i32.store + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=64 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 + br $folding-inner1 end - br $folding-inner1 + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + unreachable end i32.const 35072 i32.const 35120 diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index c5c210aea4..2896207a0e 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -188,38 +188,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -254,8 +256,10 @@ return ) (func $start:builtins~anonymous|1 + nop ) (func $start:builtins~anonymous|2 (param $a i32) (param $b i32) (param $c i32) (param $d i32) + nop ) (func $builtins/max3 (param $a i32) (param $b i32) (param $c i32) (result i32) (local $3 i32) @@ -380,6 +384,7 @@ return ) (func $builtins/test + nop ) (func $~start call $start:builtins diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index fa7c2b22ee..50e6532749 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -76,8 +76,10 @@ i32.add ) (func $start:builtins~anonymous|1 + nop ) (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) + nop ) (func $~start call $start:builtins diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index e080fb3da0..296ad10eb8 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -126,35 +126,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 160 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 160 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -380,20 +382,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -607,25 +611,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -643,26 +649,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -987,25 +995,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1014,35 +1024,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1132,6 +1144,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1200,13 +1213,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1275,13 +1290,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1289,19 +1306,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1309,25 +1328,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1496,37 +1517,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1545,29 +1568,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2319,6 +2344,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 79b66938d4..9f3e396b8b 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -31,8 +31,8 @@ i32.const -2 local.set $2 end + local.get $0 local.get $1 - i32.const 3 i32.add local.get $2 i32.add diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index 53208c38ec..fe21237973 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -123,35 +123,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -377,20 +379,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -604,25 +608,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -640,26 +646,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -984,25 +992,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1011,35 +1021,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1129,6 +1141,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1197,13 +1210,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1272,13 +1287,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1286,19 +1303,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1306,25 +1325,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1493,37 +1514,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1542,29 +1565,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2464,6 +2489,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3916,25 +3942,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 0d9c6213c5..d4045dcdd4 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func (param i32 i32) (result i32))) - (type $2 (func)) - (type $3 (func (param i32))) - (type $4 (func (param i32 i32))) + (type $1 (func)) + (type $2 (func (param i32))) + (type $3 (func (param i32 i32))) + (type $4 (func (param i32 i32) (result i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -1874,8 +1874,7 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) - (local $2 i32) + (func $call-rest/fn (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1896,33 +1895,35 @@ i32.const 0 i32.store local.get $0 - i32.const 1 + local.get $1 i32.add + local.set $1 + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length local.set $3 loop $for-loop|0 - local.get $2 + local.get $0 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 local.get $2 - call $~lib/array/Array#__get local.get $0 + call $~lib/array/Array#__get + local.get $1 i32.add - local.set $0 - local.get $2 + local.set $1 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|0 end end @@ -1930,7 +1931,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $1 ) (func $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1976,6 +1977,7 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 + local.get $0 local.get $1 local.get $2 call $call-rest/fn @@ -2585,6 +2587,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + i32.const 1 i32.const 2 local.get $0 call $call-rest/fn @@ -2606,6 +2609,7 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store + i32.const 1 i32.const 2 local.get $0 call $call-rest/fn diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 050aff4d05..09ec3c5314 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -96,35 +96,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -350,20 +352,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -577,25 +581,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -613,26 +619,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -957,25 +965,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -984,35 +994,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1102,6 +1114,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1170,13 +1183,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1245,13 +1260,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1259,19 +1276,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1279,25 +1298,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1466,37 +1487,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1515,29 +1538,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2380,6 +2405,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index e967a93f72..d185f51e6e 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -99,35 +99,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -353,20 +355,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -580,25 +584,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -616,26 +622,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -960,25 +968,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -987,35 +997,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1105,6 +1117,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1173,13 +1186,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1248,13 +1263,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1262,19 +1279,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1282,25 +1301,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1469,37 +1490,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1518,29 +1541,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2706,6 +2731,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index a8a05184e7..1b3c66f649 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -2306,18 +2306,18 @@ local.tee $0 i32.store block $__inlined_func$class-implements/I#foo@override$167 - block $default2 + block $default12 block $case3 block $case2 block $case1 - block $case03 + block $case013 local.get $0 i32.const 8 i32.sub i32.load i32.const 4 i32.sub - br_table $case1 $default2 $case2 $default2 $case3 $default2 $case3 $case03 $default2 + br_table $case1 $default12 $case2 $default12 $case3 $default12 $case3 $case013 $default12 end i32.const 4 local.set $0 @@ -2381,18 +2381,18 @@ local.get $0 i32.store block $__inlined_func$class-implements/J#foo@override$169 - block $default3 - block $case34 - block $case25 - block $case16 - block $case07 + block $default14 + block $case315 + block $case216 + block $case117 + block $case018 local.get $0 i32.const 8 i32.sub i32.load i32.const 8 i32.sub - br_table $case25 $default3 $case25 $case16 $case34 $case07 $default3 + br_table $case216 $default14 $case216 $case117 $case315 $case018 $default14 end unreachable end diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 86441b6a1b..36476b933b 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -105,35 +105,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -359,20 +361,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -586,25 +590,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -622,26 +628,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -966,25 +974,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -993,35 +1003,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1111,6 +1123,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1179,13 +1192,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1254,13 +1269,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1268,19 +1285,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1288,25 +1307,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1475,37 +1496,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1524,29 +1547,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2339,38 +2364,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2521,6 +2548,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 4f55946065..77ec422d5b 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -109,35 +109,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -363,20 +365,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -590,25 +594,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -626,26 +632,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -970,25 +978,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -997,35 +1007,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1115,6 +1127,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1183,13 +1196,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,13 +1273,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,19 +1289,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1292,25 +1311,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1479,37 +1500,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1528,29 +1551,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2343,38 +2368,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2819,6 +2846,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index c389b02f92..b7ba099006 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1917,1314 +1917,1317 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34636 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $class-overloading/B#constructor - global.set $class-overloading/a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 38 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34636 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$153 - block $default - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case0 $case1 $case0 $case0 $case2 $default + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-overloading/B#constructor + global.set $class-overloading/a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$153 + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case0 $case1 $case0 $case0 $case2 $default + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 41 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$154 - block $default0 - block $case21 - block $case12 - block $case03 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case03 $case12 $case03 $case03 $case21 $default0 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$154 + block $default4 + block $case25 + block $case16 + block $case07 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case07 $case16 $case07 $case07 $case25 $default4 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 44 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$155 - block $default1 - block $case22 - block $case13 - block $case04 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case04 $case13 $case04 $case04 $case22 $default1 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$155 + block $default8 + block $case29 + block $case110 + block $case011 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case011 $case110 $case011 $case011 $case29 $default8 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/c + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + local.tee $0 + i32.store + local.get $0 + call $class-overloading/C#a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 71 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1552 - i32.const 47 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/B#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/c - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - local.tee $0 - i32.store - local.get $0 - call $class-overloading/C#a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 71 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 74 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 77 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/D#constructor - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 89 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$157 - block $default2 - block $case23 - block $case14 - block $case05 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case05 $case14 $case05 $case05 $case23 $default2 + call $class-overloading/D#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$157 + block $default16 + block $case217 + block $case118 + block $case019 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case019 $case118 $case019 $case019 $case217 $default16 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$158 - block $default3 - block $case24 - block $case15 - block $case06 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case06 $case15 $case06 $case06 $case24 $default3 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$158 + block $default24 + block $case225 + block $case126 + block $case027 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case027 $case126 $case027 $case027 $case225 $default24 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 95 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$159 - block $default4 - block $case25 - block $case16 - block $case07 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case07 $case16 $case07 $case07 $case25 $default4 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$159 + block $default32 + block $case233 + block $case134 + block $case035 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case035 $case134 $case035 $case035 $case233 $default32 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 97 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/E#constructor - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.const 1552 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$160 - block $default5 - block $case26 - block $case17 - block $case08 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case08 $case17 $case08 $case08 $case26 $default5 + call $class-overloading/E#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$160 + block $default40 + block $case241 + block $case142 + block $case043 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case043 $case142 $case043 $case043 $case241 $default40 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 110 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$161 - block $default6 - block $case27 - block $case18 - block $case09 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case09 $case18 $case09 $case09 $case27 $default6 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$161 + block $default48 + block $case249 + block $case150 + block $case051 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case051 $case150 $case051 $case051 $case249 $default48 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1488 - global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 113 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$162 - block $default7 - block $case28 - block $case19 - block $case010 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case010 $case19 $case010 $case010 $case28 $default7 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$162 + block $default56 + block $case257 + block $case158 + block $case059 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case059 $case158 $case059 $case059 $case257 $default56 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/E#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 115 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/E#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 137 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$164 - block $default8 - block $case29 - block $case110 - block $case011 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case011 $case110 $case011 $case011 $case29 $default8 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$164 + block $default64 + block $case265 + block $case166 + block $case067 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case067 $case166 $case067 $case067 $case265 $default64 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$165 - block $default9 - block $case210 - block $case111 - block $case012 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case012 $case111 $case012 $case012 $case210 $default9 - end - i32.const 1520 - global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$165 + block $default72 + block $case273 + block $case174 + block $case075 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case075 $case174 $case075 $case075 $case273 $default72 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$165 + end + i32.const 1616 + global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$166 - block $default10 - block $case211 - block $case112 - block $case013 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case013 $case112 $case013 $case013 $case211 $default10 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$166 + block $default80 + block $case281 + block $case182 + block $case083 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case083 $case182 $case083 $case083 $case281 $default80 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1520 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1616 + i32.const 1648 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1648 + i32.const 1488 global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1488 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 146 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/ia + i32.const 1056 global.set $class-overloading/which - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 146 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/ia - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ia - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@override$168 - block $default11 - block $case113 - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ia + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@override$168 + block $default88 + block $case189 local.get $0 - i32.const 13 - i32.eq - br_if $case113 - br $default11 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if + local.get $0 + i32.const 13 + i32.eq + br_if $case189 + br $default88 + end + i32.const 1680 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@override$168 end - i32.const 1680 + i32.const 1712 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$168 end - i32.const 1712 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$168 + unreachable end - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=4 - local.get $0 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 162 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/ic - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ic - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@override$170 - block $default12 - block $case114 - local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1680 + i32.store offset=4 + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 162 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/ic + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ic + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@override$170 + block $default91 + block $case192 local.get $0 - i32.const 13 - i32.eq - br_if $case114 - br $default12 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if + local.get $0 + i32.const 13 + i32.eq + br_if $case192 + br $default91 + end + i32.const 1680 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@override$170 end - i32.const 1680 + i32.const 1712 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$170 end - i32.const 1712 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$170 + unreachable end - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 177 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if global.get $~lib/memory/__stack_pointer - i32.const 14 - call $~lib/rt/itcms/__new + global.get $class-overloading/which local.tee $0 i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/b2 - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/b2 - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A2#foo@override$1 + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - i32.load + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 15 - i32.eq + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/b2 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/b2 + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A2#foo@override$1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz + i32.load + i32.const 15 + i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 17 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 16 + i32.ne + if + i32.const 1744 + i32.const 1552 + i32.const 186 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$class-overloading/A2#foo@override$1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 16 - i32.ne - if - i32.const 1744 - i32.const 1552 - i32.const 186 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-overloading/A2#foo@override$1 + i32.const 1744 + i32.const 1552 + i32.const 198 + i32.const 5 + call $~lib/builtins/abort + unreachable end - i32.const 1744 - i32.const 1552 - i32.const 198 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34656 i32.const 34704 diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat index 5fb98225b9..175f7dc55a 100644 --- a/tests/compiler/class-override.debug.wat +++ b/tests/compiler/class-override.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2354,6 +2379,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index e8f373491e..e35eccc0ad 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -177,35 +177,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -431,20 +433,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -658,25 +662,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -694,26 +700,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1038,25 +1046,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1065,35 +1075,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1183,6 +1195,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1251,13 +1264,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1326,13 +1341,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1340,19 +1357,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1360,25 +1379,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1547,37 +1568,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1596,29 +1619,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2460,6 +2485,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $class/GenericInitializer~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index e329144ab1..80182e74d9 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -152,6 +152,7 @@ global.get $comma/a i32.lt_s if + nop global.get $comma/a i32.const 1 i32.sub diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index 5ab44a6260..b04736fddd 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -105,35 +105,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -359,20 +361,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -586,25 +590,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -622,26 +628,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -966,25 +974,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -993,35 +1003,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1111,6 +1123,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1179,13 +1192,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1254,13 +1269,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1268,19 +1285,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1288,25 +1307,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1475,37 +1496,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1524,29 +1547,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2430,6 +2455,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index f754d4909d..1def14eb5d 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -181,7 +181,7 @@ local.get $0 global.set $~lib/rt/itcms/iter end - block $__inlined_func$~lib/rt/itcms/Object#unlink$152 + block $__inlined_func$~lib/rt/itcms/Object#unlink$153 local.get $1 i32.load offset=4 i32.const -4 @@ -205,7 +205,7 @@ call $~lib/builtins/abort unreachable end - br $__inlined_func$~lib/rt/itcms/Object#unlink$152 + br $__inlined_func$~lib/rt/itcms/Object#unlink$153 end local.get $1 i32.load offset=8 @@ -1660,11 +1660,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1707,7 +1707,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1730,7 +1730,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1759,7 +1759,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1788,7 +1788,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1823,7 +1823,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1854,7 +1854,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1891,7 +1891,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -1928,7 +1928,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -1948,7 +1948,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -2005,7 +2005,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1556 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store diff --git a/tests/compiler/converge.debug.wat b/tests/compiler/converge.debug.wat index 7acd820bd3..ea98516431 100644 --- a/tests/compiler/converge.debug.wat +++ b/tests/compiler/converge.debug.wat @@ -9,5 +9,6 @@ (export "test" (func $converge/test)) (export "memory" (memory $0)) (func $converge/test + nop ) ) diff --git a/tests/compiler/converge.release.wat b/tests/compiler/converge.release.wat index 7bbb53503e..a6dddbae54 100644 --- a/tests/compiler/converge.release.wat +++ b/tests/compiler/converge.release.wat @@ -4,5 +4,6 @@ (export "test" (func $converge/test)) (export "memory" (memory $0)) (func $converge/test + nop ) ) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index 1327ed8a52..cb743bd193 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -95,6 +95,7 @@ i32.const 10 local.set $n loop $do-loop|0 + nop local.get $n local.tee $1 i32.const 1 @@ -499,35 +500,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -753,20 +756,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -980,25 +985,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -1016,26 +1023,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1360,25 +1369,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1387,35 +1398,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1505,6 +1518,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1573,13 +1587,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1648,13 +1664,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1662,19 +1680,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1682,25 +1702,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1869,37 +1891,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1918,29 +1942,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2807,14 +2833,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -3032,6 +3060,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 0078d1c8a8..476bbee294 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1552,7 +1552,7 @@ end i32.const 0 local.set $0 - loop $do-loop|07 + loop $do-loop|09 local.get $0 i32.const 1 i32.add @@ -1562,7 +1562,7 @@ i32.const 0 local.get $0 select - br_if $do-loop|07 + br_if $do-loop|09 end local.get $0 i32.const 10 @@ -1579,7 +1579,7 @@ local.set $0 i32.const 0 local.set $1 - loop $do-loop|08 + loop $do-loop|011 local.get $0 i32.const 1 i32.add @@ -1587,7 +1587,7 @@ i32.const 10 i32.ne if - loop $do-loop|110 + loop $do-loop|113 local.get $1 i32.const 1 i32.add @@ -1597,10 +1597,10 @@ i32.const 0 local.get $1 select - br_if $do-loop|110 + br_if $do-loop|113 end local.get $0 - br_if $do-loop|08 + br_if $do-loop|011 end end local.get $0 @@ -1674,7 +1674,7 @@ global.get $~lib/memory/__stack_pointer call $do/Ref#constructor i32.store - loop $do-loop|09 + loop $do-loop|05 local.get $1 i32.const 1 i32.add @@ -1691,7 +1691,7 @@ i32.store end local.get $0 - br_if $do-loop|09 + br_if $do-loop|05 end local.get $1 i32.const 10 @@ -1734,8 +1734,8 @@ call $do/Ref#constructor local.tee $1 i32.store - loop $do-loop|010 - block $do-break|03 + loop $do-loop|08 + block $do-break|06 local.get $0 i32.const 1 i32.add @@ -1745,10 +1745,10 @@ if i32.const 0 local.set $1 - br $do-break|03 + br $do-break|06 end call $do/Ref#constructor - br_if $do-loop|010 + br_if $do-loop|08 end end local.get $0 diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 79b3b9b121..1a537082f8 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -99,35 +99,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -353,20 +355,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -580,25 +584,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -616,26 +622,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -960,25 +968,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -987,35 +997,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1105,6 +1117,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1173,13 +1186,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1248,13 +1263,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1262,19 +1279,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1282,25 +1301,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1469,37 +1490,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1518,29 +1541,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2415,6 +2440,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $duplicate-fields/A2~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index e0441f24cb..0bf2e3b6d0 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -98,35 +98,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -352,20 +354,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -579,25 +583,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -615,26 +621,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -959,25 +967,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -986,35 +996,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1104,6 +1116,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1172,13 +1185,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1247,13 +1262,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1261,19 +1278,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1281,25 +1300,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1468,37 +1489,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1517,29 +1540,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2336,14 +2361,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2392,6 +2419,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index dc8a97157f..3ef75f4750 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -91,35 +91,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -345,20 +347,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -572,25 +576,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -608,26 +614,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -952,25 +960,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -979,35 +989,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1097,6 +1109,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1165,13 +1178,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1240,13 +1255,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1254,19 +1271,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1274,25 +1293,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1461,37 +1482,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1510,29 +1533,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2288,6 +2313,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/export-default.debug.wat b/tests/compiler/export-default.debug.wat index d897bb947d..fff7dc1691 100644 --- a/tests/compiler/export-default.debug.wat +++ b/tests/compiler/export-default.debug.wat @@ -10,5 +10,6 @@ (export "default" (func $export-default/theDefault)) (export "memory" (memory $0)) (func $export-default/theDefault + nop ) ) diff --git a/tests/compiler/export-default.release.wat b/tests/compiler/export-default.release.wat index d2e7be5666..80c3dd4522 100644 --- a/tests/compiler/export-default.release.wat +++ b/tests/compiler/export-default.release.wat @@ -5,5 +5,6 @@ (export "default" (func $export-default/theDefault)) (export "memory" (memory $0)) (func $export-default/theDefault + nop ) ) diff --git a/tests/compiler/exportimport-table.debug.wat b/tests/compiler/exportimport-table.debug.wat index 66306446a2..56e0ac4ffa 100644 --- a/tests/compiler/exportimport-table.debug.wat +++ b/tests/compiler/exportimport-table.debug.wat @@ -12,6 +12,7 @@ (export "table" (table $0)) (start $~start) (func $start:exportimport-table~anonymous|0 + nop ) (func $start:exportimport-table global.get $exportimport-table/f diff --git a/tests/compiler/exportimport-table.release.wat b/tests/compiler/exportimport-table.release.wat index 9c5d7e1158..d16d3131a3 100644 --- a/tests/compiler/exportimport-table.release.wat +++ b/tests/compiler/exportimport-table.release.wat @@ -8,5 +8,6 @@ (export "memory" (memory $0)) (export "table" (table $0)) (func $start:exportimport-table~anonymous|0 + nop ) ) diff --git a/tests/compiler/exports-lazy.debug.wat b/tests/compiler/exports-lazy.debug.wat index af546f4467..121a49449c 100644 --- a/tests/compiler/exports-lazy.debug.wat +++ b/tests/compiler/exports-lazy.debug.wat @@ -23,8 +23,10 @@ call $exports-lazy/lazyFuncUsed ) (func $exports-lazy/lazyFuncUsed + nop ) (func $exports-lazy/lazyFuncUnused + nop ) (func $~start call $start:exports-lazy diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 22900fa807..4c12a1debd 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -131,35 +131,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -385,20 +387,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -612,25 +616,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -648,26 +654,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -992,25 +1000,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1019,35 +1029,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1137,6 +1149,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1205,13 +1218,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1280,13 +1295,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1294,19 +1311,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1314,25 +1333,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1501,37 +1522,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1550,29 +1573,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2289,6 +2314,7 @@ call $start:rereexport ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2335,6 +2361,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index c16cf9f6b4..9c11a00d76 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1400,6 +1400,7 @@ local.get $0 ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index cdab16fe1e..6a927d7421 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -101,35 +101,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 256 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -355,20 +357,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -582,25 +586,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -618,26 +624,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -962,25 +970,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -989,35 +999,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1107,6 +1119,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1175,13 +1188,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1250,13 +1265,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1264,19 +1281,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1284,25 +1303,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1471,37 +1492,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1520,29 +1543,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2450,6 +2475,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $extends-baseaggregate/B1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2975,25 +3001,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -3045,25 +3073,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index a0bc28bb44..13d0b5c1ef 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1679,20 +1679,23 @@ block $invalid block $~lib/array/Array block $~lib/array/Array - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid + end + return end return end return end - return + unreachable end local.get $0 call $~lib/array/Array~visit @@ -1734,331 +1737,334 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34508 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $6 - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34508 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 20 - i32.const 5 + i32.const 7 call $~lib/rt/itcms/__new local.tee $6 i32.store - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $6 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $6 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - f64.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1180 - i32.load - local.tee $5 - i32.const 1 - i32.add - local.tee $4 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - local.get $2 - i32.const 1176 - i32.load - local.tee $0 - i32.const 2 - i32.shr_u - i32.gt_u - if - local.get $2 - i32.const 268435455 - i32.gt_u + local.get $6 + i32.eqz if - i32.const 1616 - i32.const 1664 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store end global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=16 + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$136 - i32.const 1073741820 - local.get $0 - i32.const 1 - i32.shl - local.tee $0 - local.get $0 - i32.const 1073741820 - i32.ge_u - select - local.tee $1 - i32.const 8 - local.get $2 + i32.const 1180 + i32.load + local.tee $5 + i32.const 1 + i32.add + local.tee $4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + local.get $2 + i32.const 1176 + i32.load + local.tee $0 + i32.const 2 + i32.shr_u + i32.gt_u + if local.get $2 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - local.get $0 - local.get $1 - i32.lt_u - select - local.tee $3 - i32.const 1168 - i32.load - local.tee $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 268435455 + i32.gt_u if + i32.const 1616 + i32.const 1664 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$136 + i32.const 1073741820 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + local.get $0 + i32.const 1073741820 + i32.ge_u + select + local.tee $1 + i32.const 8 + local.get $2 local.get $2 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $3 + i32.const 1168 + i32.load + local.tee $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $2 + local.get $3 + i32.store offset=16 + local.get $0 + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$136 + end local.get $3 - i32.store offset=16 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 local.get $0 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$136 + local.get $3 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $3 + i32.gt_u + select + memory.copy end - local.get $3 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 local.get $0 - local.get $3 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $2 - local.get $3 - i32.gt_u - select - memory.copy - end - local.get $0 - local.get $1 - i32.ne - if - i32.const 1168 - local.get $1 - i32.store - i32.const 1172 local.get $1 + i32.ne + if + i32.const 1168 + local.get $1 + i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + end + i32.const 1176 + local.get $3 i32.store - i32.const 1168 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link end - i32.const 1176 - local.get $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1168 i32.store + i32.const 1172 + i32.load + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + i32.const 1168 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1180 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1172 - i32.load - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - i32.const 1168 - local.get $6 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1180 - local.get $4 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34528 i32.const 34576 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index e0074d457f..53d2191b4c 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -91,35 +91,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -345,20 +347,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -572,25 +576,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -608,26 +614,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -952,25 +960,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -979,35 +989,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1097,6 +1109,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1165,13 +1178,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1240,13 +1255,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1254,19 +1271,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1274,25 +1293,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1461,37 +1482,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1510,29 +1533,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2364,6 +2389,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $extends-recursive/Child~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 95652de9f5..634be9a766 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1525,20 +1525,23 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return end return end return end - return + unreachable end unreachable end diff --git a/tests/compiler/features/gc.release.wat b/tests/compiler/features/gc.release.wat index e5baaab127..5ef1532691 100644 --- a/tests/compiler/features/gc.release.wat +++ b/tests/compiler/features/gc.release.wat @@ -20,5 +20,6 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start (type $0) + nop ) ) diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index 77709d2bd9..6c013cc05f 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -102,6 +102,7 @@ end ) (func $features/reference-types/someFunc + nop ) (func $start:features/reference-types (local $funcLocal funcref) @@ -128,6 +129,7 @@ i32.eqz i32.eqz if + nop else i32.const 0 i32.eqz @@ -144,6 +146,7 @@ ref.is_null i32.eqz if + nop else i32.const 0 i32.eqz diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 1c580b033e..86000c961d 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -29,6 +29,7 @@ (export "memory" (memory $0)) (start $~start) (func $features/reference-types/someFunc + nop ) (func $features/reference-types/internal (param $0 externref) (result externref) local.get $0 diff --git a/tests/compiler/features/relaxed-simd.debug.wat b/tests/compiler/features/relaxed-simd.debug.wat index ceff3d4db6..af8063a69d 100644 --- a/tests/compiler/features/relaxed-simd.debug.wat +++ b/tests/compiler/features/relaxed-simd.debug.wat @@ -43,42 +43,42 @@ global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fma + f32x4.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f32x4.relaxed_fms + f32x4.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fma + f64x2.relaxed_madd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v - f64x2.relaxed_fms + f64x2.relaxed_nmadd global.set $features/relaxed-simd/r global.get $features/relaxed-simd/v global.get $features/relaxed-simd/v diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index d94296464e..d9319dff8c 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -102,35 +102,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -356,20 +358,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -583,25 +587,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -619,26 +625,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -963,25 +971,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -990,35 +1000,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1108,6 +1120,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1176,13 +1189,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1251,13 +1266,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1265,19 +1282,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1285,25 +1304,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1472,37 +1493,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1521,29 +1544,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2597,38 +2622,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2713,6 +2740,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $field-initialization/Ref_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -5084,34 +5112,36 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $30 - local.get $30 - i32.eqz - if + block $field-initialization/Ref_Init_InlineCtor#constructor|inlined.0 (result i32) + i32.const 0 + local.set $30 + local.get $30 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $30 + i32.store offset=132 + end + local.get $30 + local.set $34 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $30 - i32.store offset=132 + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=80 + local.get $34 + call $field-initialization/Ref_Init_InlineCtor#set:a + local.get $30 end - local.get $30 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 - call $field-initialization/Ref_Init_InlineCtor#set:a - local.get $30 local.tee $31 i32.store offset=136 local.get $31 @@ -5133,42 +5163,44 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $32 - local.get $32 - i32.eqz - if + block $field-initialization/Ref_InlineCtor_Init#constructor|inlined.0 (result i32) + i32.const 0 + local.set $32 + local.get $32 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $32 + i32.store offset=140 + end + local.get $32 + local.set $34 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $32 - i32.store offset=140 + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=80 + local.get $34 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 end - local.get $32 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 local.tee $33 i32.store offset=144 local.get $33 diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 1d7d656f3a..1527ebc9cc 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1607,19 +1607,22 @@ block $invalid block $field-initialization/SomeOtherObject block $field-initialization/SomeObject - block $field-initialization/Value_Ctor_Init - block $field-initialization/Value_Init_Ctor - block $field-initialization/Value_Ctor - block $field-initialization/Value - block $field-initialization/Value_Init - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid + block + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Value + block $field-initialization/Value_Init + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return end return end @@ -1635,7 +1638,7 @@ end return end - return + unreachable end local.get $0 i32.load offset=4 diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index aab5de284e..e3eb93cf33 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2338,6 +2363,7 @@ call $~lib/rt/itcms/__link ) (func $field/NoStaticConflict.a (param $v i32) + nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2359,14 +2385,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2430,6 +2458,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $field/NoStaticConflict~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2658,25 +2687,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 4efb7bbd51..051ff3e7fd 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1810,20 +1810,23 @@ block $invalid block $~lib/array/Array block $~lib/array/Array<~lib/string/String> - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid + end + return end return end return end - return + unreachable end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index b83cf2740a..0780c263e1 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -114,6 +114,7 @@ i32.const 0 i32.gt_s if + nop local.get $i i32.const 1 i32.sub @@ -480,35 +481,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -734,20 +737,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -961,25 +966,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -997,26 +1004,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1341,25 +1350,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1368,35 +1379,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1486,6 +1499,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1554,13 +1568,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1629,13 +1645,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1643,19 +1661,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1663,25 +1683,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1850,37 +1872,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1899,29 +1923,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2800,14 +2826,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -3039,6 +3067,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index d6b3fb5e06..4b2102ef79 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1471,12 +1471,12 @@ end i32.const 10 local.set $0 - loop $for-loop|03 + loop $for-loop|04 local.get $0 i32.const 1 i32.sub local.tee $0 - br_if $for-loop|03 + br_if $for-loop|04 end local.get $0 if @@ -1489,14 +1489,14 @@ end i32.const 0 local.set $0 - loop $for-loop|04 + loop $for-loop|06 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $for-loop|04 + br_if $for-loop|06 end local.get $0 i32.const 10 @@ -1511,7 +1511,7 @@ end i32.const 0 local.set $0 - loop $for-loop|05 + loop $for-loop|07 local.get $0 i32.const 10 i32.lt_s @@ -1520,7 +1520,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|05 + br $for-loop|07 end end local.get $0 @@ -1536,7 +1536,7 @@ end i32.const 0 local.set $0 - loop $for-loop|06 + loop $for-loop|09 local.get $0 i32.const 10 i32.lt_s @@ -1573,7 +1573,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|06 + br $for-loop|09 end end local.get $0 @@ -1659,7 +1659,7 @@ call $for/Ref#constructor local.tee $0 i32.store - loop $for-loop|07 + loop $for-loop|05 local.get $0 if local.get $1 @@ -1677,7 +1677,7 @@ local.tee $0 i32.store end - br $for-loop|07 + br $for-loop|05 end end local.get $1 @@ -1727,7 +1727,7 @@ loop $for-loop|08 call $for/Ref#constructor if - block $for-break03 + block $for-break06 local.get $1 i32.const 1 i32.add @@ -1737,7 +1737,7 @@ if i32.const 0 local.set $0 - br $for-break03 + br $for-break06 end global.get $~lib/memory/__stack_pointer call $for/Ref#constructor diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 067a7f4fc0..03fc231e29 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -59,8 +59,10 @@ (export "memory" (memory $0)) (start $~start) (func $start:function-call~anonymous|0 + nop ) (func $start:function-call~anonymous|1 + nop ) (func $start:function-call~anonymous|2 (param $a i32) (param $b i32) (result i32) local.get $a @@ -128,35 +130,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -382,20 +386,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -609,25 +615,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -645,26 +653,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -989,25 +999,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1016,35 +1028,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1134,6 +1148,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1202,13 +1217,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1277,13 +1294,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1291,19 +1310,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1311,25 +1332,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1498,37 +1521,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1547,29 +1572,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2279,6 +2306,7 @@ return ) (func $function-call/Foo#fnVoid (param $this i32) + nop ) (func $function-call/Foo#fnThis (param $this i32) (result i32) local.get $this @@ -2321,6 +2349,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 56a60fbf1f..11ac883950 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -57,6 +57,7 @@ (export "memory" (memory $0)) (start $~start) (func $start:function-call~anonymous|0 + nop ) (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -64,7 +65,7 @@ i32.add ) (func $start:function-call~fn2|4 (param $0 i32) (result i32) - i32.const 1 + local.get $0 ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -1408,9 +1409,12 @@ local.get $0 ) (func $function-call/Foo#fnVoid (param $0 i32) + nop ) (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - i32.const 3 + local.get $1 + local.get $2 + i32.add ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -1529,7 +1533,16 @@ i32.const 1248 i32.load call_indirect (type $1) - drop + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 20 + i32.const 1 + call $~lib/builtins/abort + unreachable + end memory.size i32.const 16 i32.shl @@ -1628,7 +1641,16 @@ i32.const 1712 i32.load call_indirect (type $1) - drop + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1152 + i32.const 33 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer global.get $function-call/foo local.tee $0 diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index 4d60cddafc..b74ccddb8d 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -77,6 +77,7 @@ return ) (func $start:function-expression~someName|2 + nop ) (func $start:function-expression~anonymous|3 (result i32) i32.const 1 @@ -286,35 +287,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 640 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 640 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -540,20 +543,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -767,25 +772,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -803,26 +810,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1147,25 +1156,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1174,35 +1185,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1292,6 +1305,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1360,13 +1374,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1435,13 +1451,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1449,19 +1467,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1469,25 +1489,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1656,37 +1678,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1705,29 +1729,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2588,6 +2614,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index da44972113..69de206bad 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -80,15 +80,18 @@ local.get $0 ) (func $start:function-expression~someName|2 + nop ) (func $start:function-expression~anonymous|3 (result i32) i32.const 1 ) (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) - i32.const 3 + local.get $0 + local.get $1 + i32.add ) (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) - i32.const 1 + local.get $0 ) (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) i32.const 42 @@ -1467,20 +1470,23 @@ block $folding-inner1 block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid + end + return end return end return end - return + unreachable end unreachable end @@ -1534,392 +1540,397 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const 1 - i32.const 1056 - i32.load - call_indirect (type $2) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1152 - i32.load - call_indirect (type $2) - i32.const 2 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 9 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1184 - i32.load - call_indirect (type $3) - i32.const 1216 - i32.load - call_indirect (type $0) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 16 + i32.const 1056 + i32.load + call_indirect (type $2) i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store - i32.const 1 - i32.const 2 - i32.const 1248 - i32.load - call_indirect (type $1) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 21 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 4 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1152 + i32.load + call_indirect (type $2) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 9 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1184 + i32.load + call_indirect (type $3) + i32.const 1216 + i32.load + call_indirect (type $0) i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store - i32.const 1 - i32.const 2 - i32.const 1280 - i32.load - call_indirect (type $1) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1312 - i32.store - i32.const 1 - i32.const 2 - i32.const 1312 - i32.load - call_indirect (type $1) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 23 + i32.const 2 + i32.const 1248 + i32.load + call_indirect (type $1) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 1344 - i32.load - call_indirect (type $1) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 34 + i32.const 2 + i32.const 1280 + i32.load + call_indirect (type $1) i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 1376 - i32.load - call_indirect (type $1) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 35 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1312 + i32.store i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 2 - i32.const 1408 - i32.load - call_indirect (type $1) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 36 + i32.const 2 + i32.const 1312 + i32.load + call_indirect (type $1) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 1 + call $~lib/builtins/abort + unreachable + end i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1504 - i32.load - call_indirect (type $0) - local.tee $0 - i32.store - i32.const 1 - local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.load - call_indirect (type $0) - local.tee $0 - i32.store offset=4 - i32.const 1 - local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 + i32.const 2 + i32.const 1344 + i32.load + call_indirect (type $1) i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 34924 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1716 - i32.const 1712 - i32.store - i32.const 1720 - i32.const 1712 - i32.store - i32.const 1712 - global.set $~lib/rt/itcms/pinSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - i32.store - i32.const 1744 - global.set $~lib/rt/itcms/toSpace - i32.const 1892 - i32.const 1888 - i32.store - i32.const 1896 - i32.const 1888 - i32.store - i32.const 1888 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store offset=8 - local.get $1 - i32.const 2032 - i32.store - local.get $1 - i32.eqz - if + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 34 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1376 + i32.load + call_indirect (type $1) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1408 + i32.load + call_indirect (type $1) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 36 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1664 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1504 + i32.load + call_indirect (type $0) + local.tee $0 + i32.store + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.sub - i32.load offset=4 - i32.const 3 - i32.and + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.load + call_indirect (type $0) local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq + i32.store offset=4 + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 34924 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1716 + i32.const 1712 + i32.store + i32.const 1720 + i32.const 1712 + i32.store + i32.const 1712 + global.set $~lib/rt/itcms/pinSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/toSpace + i32.const 1892 + i32.const 1888 + i32.store + i32.const 1896 + i32.const 1888 + i32.store + i32.const 1888 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $__inlined_func$function-expression/testField$4 + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store offset=8 + local.get $1 + i32.const 2032 + i32.store + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load i32.const 3 - i32.eq i32.and + i32.eq + if + local.get $1 + i32.const 20 + i32.sub + i32.load offset=4 + i32.const 3 + i32.and + local.tee $0 + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state + i32.const 1 + i32.eq + local.get $0 + i32.const 3 + i32.eq + i32.and + if + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + end + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + i32.load + call_indirect (type $0) + local.tee $0 + i32.store offset=8 + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray + i32.const 0 + i32.const 1088 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end + call $function-expression/semanticallyAnonymous + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - i32.load - call_indirect (type $0) - local.tee $0 - i32.store offset=8 - i32.const 1 - local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - call $function-expression/semanticallyAnonymous - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34944 i32.const 34992 diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index b0207d6d3e..f361123f2a 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -28,10 +28,14 @@ i32.add ) (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) - i64.const 30 + local.get $0 + local.get $1 + i64.add ) (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) - f64.const 4 + local.get $0 + local.get $1 + f64.add ) (func $~start (local $0 i32) diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 593954b022..5b7c797179 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2275,6 +2300,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index 3b82eebc93..d28d106ccc 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -221,25 +221,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -257,26 +259,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -601,25 +605,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -628,35 +634,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -746,6 +754,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -814,13 +823,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -889,13 +900,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -903,19 +916,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -923,25 +938,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add diff --git a/tests/compiler/import.debug.wat b/tests/compiler/import.debug.wat index bec85bb9df..c86db7ef30 100644 --- a/tests/compiler/import.debug.wat +++ b/tests/compiler/import.debug.wat @@ -31,8 +31,10 @@ return ) (func $export/ns.two + nop ) (func $export-default/theDefault + nop ) (func $start:import global.get $export/a diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index 8af875461c..5df4fbc636 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 64 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 64 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -1620,14 +1645,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2364,6 +2391,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index 4bbaa8d706..f5ce39f4e8 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -113,35 +113,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -367,20 +369,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -594,25 +598,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -630,26 +636,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -974,25 +982,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1001,35 +1011,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1119,6 +1131,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1187,13 +1200,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1262,13 +1277,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1276,19 +1293,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,25 +1315,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1483,37 +1504,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1532,29 +1555,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2509,6 +2534,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -4261,25 +4287,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -4331,25 +4359,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -4427,25 +4457,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index dbbf12c951..681057cfde 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -140,35 +140,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 272 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 272 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -394,20 +396,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -621,25 +625,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -657,26 +663,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1001,25 +1009,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1028,35 +1038,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1146,6 +1158,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1214,13 +1227,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1289,13 +1304,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1303,19 +1320,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1323,25 +1342,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1510,37 +1531,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1559,29 +1582,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2354,6 +2379,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/inlining-blocklocals.debug.wat b/tests/compiler/inlining-blocklocals.debug.wat index fd5ccaf5c2..5864584e5f 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -24,31 +24,33 @@ (local $c i32) i32.const 1 local.set $a - local.get $a - local.tee $1 - i32.const 1 - i32.add - local.set $a - local.get $1 - local.set $a|3 - global.get $inlining-blocklocals/b - local.tee $2 - i32.const 1 - i32.add - global.set $inlining-blocklocals/b - local.get $2 - local.set $b - local.get $a - i32.const 1 - i32.add - local.tee $a - local.set $c - local.get $a|3 - global.set $inlining-blocklocals/theCall_a - local.get $b - global.set $inlining-blocklocals/theCall_b - local.get $c - global.set $inlining-blocklocals/theCall_c + block $inlining-blocklocals/theCall|inlined.0 + local.get $a + local.tee $1 + i32.const 1 + i32.add + local.set $a + local.get $1 + local.set $a|3 + global.get $inlining-blocklocals/b + local.tee $2 + i32.const 1 + i32.add + global.set $inlining-blocklocals/b + local.get $2 + local.set $b + local.get $a + i32.const 1 + i32.add + local.tee $a + local.set $c + local.get $a|3 + global.set $inlining-blocklocals/theCall_a + local.get $b + global.set $inlining-blocklocals/theCall_b + local.get $c + global.set $inlining-blocklocals/theCall_c + end global.get $inlining-blocklocals/theCall_a i32.const 1 i32.eq diff --git a/tests/compiler/inlining-recursive.debug.wat b/tests/compiler/inlining-recursive.debug.wat index 4c1161873d..689c7953ae 100644 --- a/tests/compiler/inlining-recursive.debug.wat +++ b/tests/compiler/inlining-recursive.debug.wat @@ -17,6 +17,8 @@ call $inlining-recursive/bar ) (func $inlining-recursive/bar - call $inlining-recursive/baz + block $inlining-recursive/bar|inlined.0 + call $inlining-recursive/baz + end ) ) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 4613c1a7a4..579d564a9a 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -241,8 +241,10 @@ i32.const 4 i32.eq drop - i32.const 0 - local.set $a|19 + block $inlining/func_iv|inlined.0 + i32.const 0 + local.set $a|19 + end i32.const 2 i32.const 1 global.set $~argumentsLength @@ -363,35 +365,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -617,20 +621,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -844,25 +850,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -880,26 +888,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1224,25 +1234,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1251,35 +1263,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1369,6 +1383,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1437,13 +1452,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1512,13 +1529,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1526,19 +1545,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1546,25 +1567,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1733,37 +1756,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1782,29 +1807,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2787,6 +2814,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -2875,89 +2903,93 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 0 - local.set $this - i32.const 4 - local.set $f - local.get $this - i32.eqz - if + block $inlining/Bar#constructor|inlined.0 (result i32) + i32.const 0 + local.set $this + i32.const 4 + local.set $f + local.get $this + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $this + i32.store + end + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + call $inlining/Bar#set:d + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $inlining/Bar#set:e + global.get $~lib/memory/__stack_pointer + block $inlining/Baz#constructor|inlined.0 (result i32) + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store offset=8 + i32.const 2 + local.set $c + local.get $this|2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this|2 + i32.store offset=8 + end + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + call $inlining/Baz#set:a + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $inlining/Baz#set:b + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $c + call $inlining/Baz#set:b + local.get $this|2 + end local.tee $this i32.store - end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 3 - call $inlining/Bar#set:d - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Bar#set:e - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $this|2 - i32.store offset=8 - i32.const 2 - local.set $c - local.get $this|2 - i32.eqz - if + local.get $this + local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this|2 - i32.store offset=8 + local.get $5 + i32.store offset=4 + local.get $5 + local.get $f + call $inlining/Bar#set:e + local.get $this end - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - call $inlining/Baz#set:a - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Baz#set:b - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $c - call $inlining/Baz#set:b - local.get $this|2 - local.tee $this - i32.store - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $f - call $inlining/Bar#set:e - local.get $this local.tee $bar i32.store offset=12 local.get $bar diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 67e09d9b8e..3bbaa89926 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -49,7 +49,7 @@ i32.const 3 ) (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) - i32.const 2 + local.get $0 ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -1561,7 +1561,16 @@ i32.const 1104 i32.load call_indirect (type $2) - drop + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1056 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer i32.const 123 i32.store diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index 79d6b3b7cb..c63ffbe7b4 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -115,35 +115,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -369,20 +371,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -596,25 +600,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -632,26 +638,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -976,25 +984,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1003,35 +1013,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1121,6 +1133,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1189,13 +1202,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1264,13 +1279,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1278,19 +1295,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1298,25 +1317,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1485,37 +1506,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1534,29 +1557,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2266,6 +2291,7 @@ return ) (func $instanceof/A#checkInstanceof (param $this i32) + nop ) (func $instanceof/isI32 (param $v i32) (result i32) i32.const 1 @@ -4140,6 +4166,7 @@ call $~instanceof|instanceof/C end if + nop end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4600,6 +4627,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index 8d55faf3bc..abf72336fb 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2349,6 +2374,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $issues/1095/Foo~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 59a7187755..73d239a859 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1590,20 +1590,23 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid + end + return end return end return end - return + unreachable end unreachable end diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index 73eec5c752..f6d76abeff 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -109,35 +109,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -363,20 +365,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -590,25 +594,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -626,26 +632,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -970,25 +978,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -997,35 +1007,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1115,6 +1127,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1183,13 +1196,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,13 +1273,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,19 +1289,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1292,25 +1311,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1479,37 +1500,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1528,29 +1551,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2292,14 +2317,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2399,6 +2426,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index bec13bbd0b..ab87d63ad6 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -96,35 +96,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -350,20 +352,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -577,25 +581,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -613,26 +619,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -957,25 +965,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -984,35 +994,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1102,6 +1114,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1170,13 +1183,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1245,13 +1260,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1259,19 +1276,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1279,25 +1298,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1466,37 +1487,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1515,29 +1538,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2459,6 +2484,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3189,25 +3215,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 0bcdd37e25..9ae12ae404 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1639,144 +1639,18 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 28 - memory.fill - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 32 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - call $issues/1699/MultiAssignmentTest#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $0 - i32.const 1 - local.get $2 - call $~lib/array/Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 - local.get $2 - call $~lib/array/Array#__set - loop $for-loop|0 + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1740 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 0 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1784,99 +1658,228 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 i32.store local.get $0 - i32.load offset=12 - local.set $2 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 32 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + call $issues/1699/MultiAssignmentTest#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.lt_s - if + i32.store offset=16 + local.get $0 + i32.const 1 + local.get $2 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $2 + call $~lib/array/Array#__set + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer - call $issues/1699/MultiAssignmentTest#constructor - local.tee $2 - i32.store offset=24 + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.gt_s + local.get $2 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 + call $issues/1699/MultiAssignmentTest#constructor + local.tee $2 + i32.store offset=24 local.get $1 - local.get $2 - call $~lib/array/Array#__set + i32.const 1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + local.get $1 + local.get $2 + call $~lib/array/Array#__set + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1680 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.get $1 - i32.eq - if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1680 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.get $1 + i32.ne + if + i32.const 0 + i32.const 1680 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.get $1 + i32.eq + if + i32.const 0 + i32.const 1680 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34528 i32.const 34576 diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index acce532285..03db602017 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -124,38 +124,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 6d3ac1a299..78cdee643b 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -98,35 +98,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -352,20 +354,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -579,25 +583,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -615,26 +621,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -959,25 +967,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -986,35 +996,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1104,6 +1116,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1172,13 +1185,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1247,13 +1262,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1261,19 +1278,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1281,25 +1300,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1468,37 +1489,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1517,29 +1540,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2328,38 +2353,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2389,6 +2416,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index 63522c906a..f3a89cf13e 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -92,35 +92,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -346,20 +348,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -573,25 +577,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -609,26 +615,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -953,25 +961,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -980,35 +990,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1098,6 +1110,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1166,13 +1179,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1241,13 +1256,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1255,19 +1272,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1275,25 +1294,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1462,37 +1483,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1511,29 +1534,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2248,6 +2273,7 @@ i32.store ) (func $issues/2322/lib/test (param $t i32) + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2273,6 +2299,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 134f40c571..470136407c 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -95,35 +95,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -349,20 +351,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -576,25 +580,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -612,26 +618,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -956,25 +964,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -983,35 +993,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1101,6 +1113,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1169,13 +1182,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1244,13 +1259,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1258,19 +1275,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1278,25 +1297,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1465,37 +1486,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1514,29 +1537,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2343,6 +2368,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index 90ba543503..540cae264c 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -101,35 +101,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -355,20 +357,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -582,25 +586,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -618,26 +624,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -962,25 +970,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -989,35 +999,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1107,6 +1119,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1175,13 +1188,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1250,13 +1265,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1264,19 +1281,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1284,25 +1303,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1471,37 +1492,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1520,29 +1543,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2359,6 +2384,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index 9ca1161cf6..fe70f48f10 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1116,12 +1116,12 @@ local.get $0 local.get $1 i32.ctz - local.tee $1 + local.tee $2 i32.const 2 i32.shl i32.add i32.load offset=4 - local.tee $2 + local.tee $1 i32.eqz if i32.const 0 @@ -1132,9 +1132,9 @@ unreachable end local.get $0 - local.get $2 - i32.ctz local.get $1 + i32.ctz + local.get $2 i32.const 4 i32.shl i32.add diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index cb6ced6aba..03c0f6d504 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -196,441 +196,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 1104 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 1104 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 1104 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 1104 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -646,59 +659,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1144 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1144 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1144 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1144 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -995,20 +1010,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -1074,20 +1091,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -1271,111 +1290,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 232 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 928 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 232 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 928 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -1691,37 +1714,39 @@ global.get $~lib/rt/itcms/pinSpace local.set $pn local.get $pn - call $~lib/rt/itcms/Object#get:next - local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + call $~lib/rt/itcms/Object#get:next + local.set $iter + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 1632 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 1632 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -1947,20 +1972,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -2174,25 +2201,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -2210,26 +2239,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -2554,25 +2585,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -2581,35 +2614,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -2699,6 +2734,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -2767,13 +2803,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -2842,13 +2880,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -2856,19 +2896,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -2876,25 +2918,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -3063,37 +3107,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -3112,29 +3158,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -3928,38 +3976,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -4197,6 +4247,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/localinit.debug.wat b/tests/compiler/localinit.debug.wat index c97e35fdd2..3fbcc8ba98 100644 --- a/tests/compiler/localinit.debug.wat +++ b/tests/compiler/localinit.debug.wat @@ -124,22 +124,24 @@ (func $localinit/initInWhileOr (param $cond i32) (local $a i32) (local $b i32) - loop $while-continue|0 - local.get $cond - if (result i32) - i32.const 1 - else - i32.const 1 - local.tee $a - end - if (result i32) - i32.const 1 - else - i32.const 1 - local.tee $b - end - if - return + block $while-break|0 + loop $while-continue|0 + local.get $cond + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $a + end + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $b + end + if + return + end end end local.get $a diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index c5d2e58444..6386ecb2ef 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -121,35 +121,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -375,20 +377,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -602,25 +606,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -638,26 +644,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -982,25 +990,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1009,35 +1019,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1127,6 +1139,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1195,13 +1208,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1270,13 +1285,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1284,19 +1301,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1304,25 +1323,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1491,37 +1512,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1540,29 +1563,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2345,6 +2370,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 38367f2b11..594571b394 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -94,35 +94,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -348,20 +350,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -575,25 +579,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -611,26 +617,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -955,25 +963,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -982,35 +992,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1100,6 +1112,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1168,13 +1181,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1243,13 +1258,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1257,19 +1274,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1277,25 +1296,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1464,37 +1485,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1513,29 +1536,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2245,8 +2270,10 @@ return ) (func $managed-cast/Animal#tame (param $this i32) + nop ) (func $managed-cast/Cat#meow (param $this i32) + nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2268,14 +2295,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2335,6 +2364,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index 0435fe9b90..082eb50187 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -100,89 +100,93 @@ (local $84 i32) local.get $dest local.set $ret - loop $while-continue|0 - local.get $n - if (result i32) - local.get $src - i32.const 4 - i32.rem_u - else - i32.const 0 - end - if - local.get $dest - local.tee $6 - i32.const 1 - i32.add - local.set $dest - local.get $6 - local.get $src - local.tee $7 - i32.const 1 - i32.add - local.set $src - local.get $7 - i32.load8_u - i32.store8 + block $while-break|0 + loop $while-continue|0 local.get $n - i32.const 1 - i32.sub - local.set $n - br $while-continue|0 - end - end - local.get $dest - i32.const 4 - i32.rem_u - i32.const 0 - i32.eq - if - loop $while-continue|1 - local.get $n - i32.const 16 - i32.ge_u - if - local.get $dest + if (result i32) local.get $src - i32.load - i32.store - local.get $dest i32.const 4 - i32.add - local.get $src - i32.const 4 - i32.add - i32.load - i32.store - local.get $dest - i32.const 8 - i32.add - local.get $src - i32.const 8 - i32.add - i32.load - i32.store + i32.rem_u + else + i32.const 0 + end + if local.get $dest - i32.const 12 - i32.add - local.get $src - i32.const 12 + local.tee $6 + i32.const 1 i32.add - i32.load - i32.store + local.set $dest + local.get $6 local.get $src - i32.const 16 + local.tee $7 + i32.const 1 i32.add local.set $src - local.get $dest - i32.const 16 - i32.add - local.set $dest + local.get $7 + i32.load8_u + i32.store8 local.get $n - i32.const 16 + i32.const 1 i32.sub local.set $n - br $while-continue|1 + br $while-continue|0 + end + end + end + local.get $dest + i32.const 4 + i32.rem_u + i32.const 0 + i32.eq + if + block $while-break|1 + loop $while-continue|1 + local.get $n + i32.const 16 + i32.ge_u + if + local.get $dest + local.get $src + i32.load + i32.store + local.get $dest + i32.const 4 + i32.add + local.get $src + i32.const 4 + i32.add + i32.load + i32.store + local.get $dest + i32.const 8 + i32.add + local.get $src + i32.const 8 + i32.add + i32.load + i32.store + local.get $dest + i32.const 12 + i32.add + local.get $src + i32.const 12 + i32.add + i32.load + i32.store + local.get $src + i32.const 16 + i32.add + local.set $src + local.get $dest + i32.const 16 + i32.add + local.set $dest + local.get $n + i32.const 16 + i32.sub + local.set $n + br $while-continue|1 + end end end local.get $n @@ -341,27 +345,149 @@ i32.const 3 i32.sub local.set $n - loop $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $n + i32.const 17 + i32.ge_u + if + local.get $src + i32.const 1 + i32.add + i32.load + local.set $x + local.get $dest + local.get $w + i32.const 24 + i32.shr_u + local.get $x + i32.const 8 + i32.shl + i32.or + i32.store + local.get $src + i32.const 5 + i32.add + i32.load + local.set $w + local.get $dest + i32.const 4 + i32.add + local.get $x + i32.const 24 + i32.shr_u + local.get $w + i32.const 8 + i32.shl + i32.or + i32.store + local.get $src + i32.const 9 + i32.add + i32.load + local.set $x + local.get $dest + i32.const 8 + i32.add + local.get $w + i32.const 24 + i32.shr_u + local.get $x + i32.const 8 + i32.shl + i32.or + i32.store + local.get $src + i32.const 13 + i32.add + i32.load + local.set $w + local.get $dest + i32.const 12 + i32.add + local.get $x + i32.const 24 + i32.shr_u + local.get $w + i32.const 8 + i32.shl + i32.or + i32.store + local.get $src + i32.const 16 + i32.add + local.set $src + local.get $dest + i32.const 16 + i32.add + local.set $dest + local.get $n + i32.const 16 + i32.sub + local.set $n + br $while-continue|3 + end + end + end + br $break|2 + end + local.get $src + i32.load + local.set $w + local.get $dest + local.tee $17 + i32.const 1 + i32.add + local.set $dest + local.get $17 + local.get $src + local.tee $18 + i32.const 1 + i32.add + local.set $src + local.get $18 + i32.load8_u + i32.store8 + local.get $dest + local.tee $19 + i32.const 1 + i32.add + local.set $dest + local.get $19 + local.get $src + local.tee $20 + i32.const 1 + i32.add + local.set $src + local.get $20 + i32.load8_u + i32.store8 + local.get $n + i32.const 2 + i32.sub + local.set $n + block $while-break|4 + loop $while-continue|4 local.get $n - i32.const 17 + i32.const 18 i32.ge_u if local.get $src - i32.const 1 + i32.const 2 i32.add i32.load local.set $x local.get $dest local.get $w - i32.const 24 + i32.const 16 i32.shr_u local.get $x - i32.const 8 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 5 + i32.const 6 i32.add i32.load local.set $w @@ -369,15 +495,15 @@ i32.const 4 i32.add local.get $x - i32.const 24 + i32.const 16 i32.shr_u local.get $w - i32.const 8 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 9 + i32.const 10 i32.add i32.load local.set $x @@ -385,15 +511,15 @@ i32.const 8 i32.add local.get $w - i32.const 24 + i32.const 16 i32.shr_u local.get $x - i32.const 8 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 13 + i32.const 14 i32.add i32.load local.set $w @@ -401,10 +527,10 @@ i32.const 12 i32.add local.get $x - i32.const 24 + i32.const 16 i32.shr_u local.get $w - i32.const 8 + i32.const 16 i32.shl i32.or i32.store @@ -420,67 +546,55 @@ i32.const 16 i32.sub local.set $n - br $while-continue|3 + br $while-continue|4 end end - br $break|2 end - local.get $src - i32.load - local.set $w - local.get $dest - local.tee $17 - i32.const 1 - i32.add - local.set $dest - local.get $17 - local.get $src - local.tee $18 - i32.const 1 - i32.add - local.set $src - local.get $18 - i32.load8_u - i32.store8 - local.get $dest - local.tee $19 - i32.const 1 - i32.add - local.set $dest - local.get $19 - local.get $src - local.tee $20 - i32.const 1 - i32.add - local.set $src - local.get $20 - i32.load8_u - i32.store8 - local.get $n - i32.const 2 - i32.sub - local.set $n - loop $while-continue|4 + br $break|2 + end + local.get $src + i32.load + local.set $w + local.get $dest + local.tee $21 + i32.const 1 + i32.add + local.set $dest + local.get $21 + local.get $src + local.tee $22 + i32.const 1 + i32.add + local.set $src + local.get $22 + i32.load8_u + i32.store8 + local.get $n + i32.const 1 + i32.sub + local.set $n + block $while-break|5 + loop $while-continue|5 local.get $n - i32.const 18 + i32.const 19 i32.ge_u if local.get $src - i32.const 2 + i32.const 3 i32.add i32.load local.set $x local.get $dest local.get $w - i32.const 16 + i32.const 8 i32.shr_u local.get $x - i32.const 16 + i32.const 24 i32.shl i32.or i32.store local.get $src - i32.const 6 + i32.const 7 i32.add i32.load local.set $w @@ -488,15 +602,15 @@ i32.const 4 i32.add local.get $x - i32.const 16 + i32.const 8 i32.shr_u local.get $w - i32.const 16 + i32.const 24 i32.shl i32.or i32.store local.get $src - i32.const 10 + i32.const 11 i32.add i32.load local.set $x @@ -504,15 +618,15 @@ i32.const 8 i32.add local.get $w - i32.const 16 + i32.const 8 i32.shr_u local.get $x - i32.const 16 + i32.const 24 i32.shl i32.or i32.store local.get $src - i32.const 14 + i32.const 15 i32.add i32.load local.set $w @@ -520,10 +634,10 @@ i32.const 12 i32.add local.get $x - i32.const 16 + i32.const 8 i32.shr_u local.get $w - i32.const 16 + i32.const 24 i32.shl i32.or i32.store @@ -539,113 +653,9 @@ i32.const 16 i32.sub local.set $n - br $while-continue|4 + br $while-continue|5 end end - br $break|2 - end - local.get $src - i32.load - local.set $w - local.get $dest - local.tee $21 - i32.const 1 - i32.add - local.set $dest - local.get $21 - local.get $src - local.tee $22 - i32.const 1 - i32.add - local.set $src - local.get $22 - i32.load8_u - i32.store8 - local.get $n - i32.const 1 - i32.sub - local.set $n - loop $while-continue|5 - local.get $n - i32.const 19 - i32.ge_u - if - local.get $src - i32.const 3 - i32.add - i32.load - local.set $x - local.get $dest - local.get $w - i32.const 8 - i32.shr_u - local.get $x - i32.const 24 - i32.shl - i32.or - i32.store - local.get $src - i32.const 7 - i32.add - i32.load - local.set $w - local.get $dest - i32.const 4 - i32.add - local.get $x - i32.const 8 - i32.shr_u - local.get $w - i32.const 24 - i32.shl - i32.or - i32.store - local.get $src - i32.const 11 - i32.add - i32.load - local.set $x - local.get $dest - i32.const 8 - i32.add - local.get $w - i32.const 8 - i32.shr_u - local.get $x - i32.const 24 - i32.shl - i32.or - i32.store - local.get $src - i32.const 15 - i32.add - i32.load - local.set $w - local.get $dest - i32.const 12 - i32.add - local.get $x - i32.const 8 - i32.shr_u - local.get $w - i32.const 24 - i32.shl - i32.or - i32.store - local.get $src - i32.const 16 - i32.add - local.set $src - local.get $dest - i32.const 16 - i32.add - local.set $dest - local.get $n - i32.const 16 - i32.sub - local.set $n - br $while-continue|5 - end end br $break|2 end diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index e325c90617..4d908d2e1e 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -41,87 +41,93 @@ i32.rem_u i32.eq if - loop $while-continue|0 - local.get $dest - i32.const 8 - i32.rem_u - if - local.get $n - i32.eqz + block $while-break|0 + loop $while-continue|0 + local.get $dest + i32.const 8 + i32.rem_u if - local.get $ret - return + local.get $n + i32.eqz + if + local.get $ret + return + end + local.get $n + i32.const 1 + i32.sub + local.set $n + local.get $dest + local.tee $4 + i32.const 1 + i32.add + local.set $dest + local.get $4 + local.get $src + local.tee $5 + i32.const 1 + i32.add + local.set $src + local.get $5 + i32.load8_u + i32.store8 + br $while-continue|0 end + end + end + block $while-break|1 + loop $while-continue|1 local.get $n - i32.const 1 - i32.sub - local.set $n + i32.const 8 + i32.ge_u + if + local.get $dest + local.get $src + i64.load + i64.store + local.get $n + i32.const 8 + i32.sub + local.set $n + local.get $dest + i32.const 8 + i32.add + local.set $dest + local.get $src + i32.const 8 + i32.add + local.set $src + br $while-continue|1 + end + end + end + end + block $while-break|2 + loop $while-continue|2 + local.get $n + if local.get $dest - local.tee $4 + local.tee $6 i32.const 1 i32.add local.set $dest - local.get $4 + local.get $6 local.get $src - local.tee $5 + local.tee $7 i32.const 1 i32.add local.set $src - local.get $5 + local.get $7 i32.load8_u i32.store8 - br $while-continue|0 - end - end - loop $while-continue|1 - local.get $n - i32.const 8 - i32.ge_u - if - local.get $dest - local.get $src - i64.load - i64.store local.get $n - i32.const 8 + i32.const 1 i32.sub local.set $n - local.get $dest - i32.const 8 - i32.add - local.set $dest - local.get $src - i32.const 8 - i32.add - local.set $src - br $while-continue|1 + br $while-continue|2 end end end - loop $while-continue|2 - local.get $n - if - local.get $dest - local.tee $6 - i32.const 1 - i32.add - local.set $dest - local.get $6 - local.get $src - local.tee $7 - i32.const 1 - i32.add - local.set $src - local.get $7 - i32.load8_u - i32.store8 - local.get $n - i32.const 1 - i32.sub - local.set $n - br $while-continue|2 - end - end else local.get $src i32.const 8 @@ -131,71 +137,77 @@ i32.rem_u i32.eq if - loop $while-continue|3 - local.get $dest - local.get $n - i32.add - i32.const 8 - i32.rem_u - if - local.get $n - i32.eqz - if - local.get $ret - return - end + block $while-break|3 + loop $while-continue|3 local.get $dest local.get $n - i32.const 1 - i32.sub - local.tee $n i32.add - local.get $src + i32.const 8 + i32.rem_u + if + local.get $n + i32.eqz + if + local.get $ret + return + end + local.get $dest + local.get $n + i32.const 1 + i32.sub + local.tee $n + i32.add + local.get $src + local.get $n + i32.add + i32.load8_u + i32.store8 + br $while-continue|3 + end + end + end + block $while-break|4 + loop $while-continue|4 local.get $n - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 + i32.const 8 + i32.ge_u + if + local.get $n + i32.const 8 + i32.sub + local.set $n + local.get $dest + local.get $n + i32.add + local.get $src + local.get $n + i32.add + i64.load + i64.store + br $while-continue|4 + end end end - loop $while-continue|4 + end + block $while-break|5 + loop $while-continue|5 local.get $n - i32.const 8 - i32.ge_u if - local.get $n - i32.const 8 - i32.sub - local.set $n local.get $dest local.get $n + i32.const 1 + i32.sub + local.tee $n i32.add local.get $src local.get $n i32.add - i64.load - i64.store - br $while-continue|4 + i32.load8_u + i32.store8 + br $while-continue|5 end end end - loop $while-continue|5 - local.get $n - if - local.get $dest - local.get $n - i32.const 1 - i32.sub - local.tee $n - i32.add - local.get $src - local.get $n - i32.add - i32.load8_u - i32.store8 - br $while-continue|5 - end - end end local.get $ret return diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index 06ad44229b..b266f3cea9 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -237,38 +237,40 @@ i64.shl i64.or local.set $c64 - loop $while-continue|0 - local.get $n - i32.const 32 - i32.ge_u - if - local.get $dest - local.get $c64 - i64.store - local.get $dest - i32.const 8 - i32.add - local.get $c64 - i64.store - local.get $dest - i32.const 16 - i32.add - local.get $c64 - i64.store - local.get $dest - i32.const 24 - i32.add - local.get $c64 - i64.store + block $while-break|0 + loop $while-continue|0 local.get $n i32.const 32 - i32.sub - local.set $n - local.get $dest - i32.const 32 - i32.add - local.set $dest - br $while-continue|0 + i32.ge_u + if + local.get $dest + local.get $c64 + i64.store + local.get $dest + i32.const 8 + i32.add + local.get $c64 + i64.store + local.get $dest + i32.const 16 + i32.add + local.get $c64 + i64.store + local.get $dest + i32.const 24 + i32.add + local.get $c64 + i64.store + local.get $n + i32.const 32 + i32.sub + local.set $n + local.get $dest + i32.const 32 + i32.add + local.set $dest + br $while-continue|0 + end end end local.get $ret diff --git a/tests/compiler/merge.debug.wat b/tests/compiler/merge.debug.wat index 62a1517ef0..1e3f09d925 100644 --- a/tests/compiler/merge.debug.wat +++ b/tests/compiler/merge.debug.wat @@ -19,36 +19,52 @@ (export "memory" (memory $0)) (start $~start) (func $merge/namespaceType.test + nop ) (func $merge/typeNamespace.test + nop ) (func $merge/functionType + nop ) (func $merge/typeFunction + nop ) (func $merge/classNamespace.test1 + nop ) (func $merge/classNamespace.test2 + nop ) (func $merge/namespaceClass.test1 + nop ) (func $merge/namespaceClass.test2 + nop ) (func $merge/functionNamespace + nop ) (func $merge/functionNamespace.test + nop ) (func $merge/namespaceFunction.test + nop ) (func $merge/namespaceFunction + nop ) (func $merge/enumNamespace.test + nop ) (func $merge/namespaceEnum.test + nop ) (func $merge/namespaceNamespace.test1 + nop ) (func $merge/namespaceNamespace.test2 + nop ) (func $start:merge global.get $merge/globalType diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index 8714ae4b69..e37449be95 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -97,35 +97,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -351,20 +353,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -578,25 +582,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -614,26 +620,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -958,25 +966,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -985,35 +995,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1103,6 +1115,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1171,13 +1184,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1246,13 +1261,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1260,19 +1277,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1280,25 +1299,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1467,37 +1488,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1516,29 +1539,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2325,6 +2350,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/nontrapping-f2i.release.wat b/tests/compiler/nontrapping-f2i.release.wat index 153611c85e..3dc4fb2b3a 100644 --- a/tests/compiler/nontrapping-f2i.release.wat +++ b/tests/compiler/nontrapping-f2i.release.wat @@ -4,5 +4,6 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start + nop ) ) diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index e66ee803a9..6a4b2fb56f 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -369,35 +369,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 80 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 80 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -443,20 +445,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -670,25 +674,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -706,26 +712,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1050,25 +1058,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1077,35 +1087,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1195,6 +1207,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1263,13 +1276,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1338,13 +1353,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1352,19 +1369,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1372,25 +1391,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1559,37 +1580,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1608,29 +1631,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2427,38 +2452,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2797,14 +2824,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2847,6 +2876,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $object-literal/Managed~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index cc215c26e8..d190b12c7c 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -2320,841 +2320,844 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 28 - memory.fill - i32.const 1156 - i32.const 1152 - i32.store - i32.const 1160 - i32.const 1152 - i32.store - i32.const 1152 - global.set $~lib/rt/itcms/toSpace - memory.size - i32.const 16 - i32.shl - i32.const 34516 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/pinSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/object/Object#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 123 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 - local.get $1 - i32.const 1056 - i32.store offset=4 - local.get $1 - i32.const 1056 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - i32.const 123 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 9 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 8 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 123 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 5 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 5 - i32.gt_u - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $3 - block $__inlined_func$~lib/string/String#substring$208 - local.get $2 - i32.const 0 - local.get $2 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.ge_s - select - i32.const 1 + i32.const 28 + memory.fill + i32.const 1156 + i32.const 1152 + i32.store + i32.const 1160 + i32.const 1152 + i32.store + i32.const 1152 + global.set $~lib/rt/itcms/toSpace + memory.size + i32.const 16 i32.shl - local.tee $4 - local.get $3 + i32.const 34516 i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1568 - local.set $0 - br $__inlined_func$~lib/string/String#substring$208 - end - local.get $3 - i32.eqz - local.get $4 - local.get $0 i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#substring$208 - end + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/pinSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 4 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - local.get $3 - i32.const 1056 - i32.add - local.get $2 - memory.copy + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.load - i32.const 123 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=4 - local.get $0 - i32.const 1600 - call $~lib/string/String.__eq - i32.eqz - if + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 123 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=12 + local.get $1 + i32.const 1056 + i32.store offset=4 + local.get $1 + i32.const 1056 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.const 123 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 123 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 5 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 5 + i32.gt_u + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + block $__inlined_func$~lib/string/String#substring$208 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 + i32.shl + local.tee $4 + local.get $3 + i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1568 + local.set $0 + br $__inlined_func$~lib/string/String#substring$208 + end + local.get $3 + i32.eqz + local.get $4 + local.get $0 + i32.const 1 + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $0 + br $__inlined_func$~lib/string/String#substring$208 + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + local.get $0 + local.get $3 + i32.const 1056 + i32.add + local.get $2 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.load + i32.const 123 + i32.ne + if + i32.const 0 + i32.const 1504 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1600 + i32.store offset=4 + local.get $0 + i32.const 1600 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 65 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + f32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + f64.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=41 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store16 offset=42 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store16 offset=44 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + f64.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=64 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + f32.const 0 + f32.store offset=24 + local.get $0 + f64.const 0 + f64.store offset=32 + local.get $0 + i32.const 0 + i32.store8 offset=40 + local.get $0 + i32.const 0 + i32.store8 offset=41 + local.get $0 + i32.const 0 + i32.store16 offset=42 + local.get $0 + i32.const 0 + i32.store16 offset=44 + local.get $0 + i32.const 0 + i32.store offset=48 + local.get $0 + i32.const 0 + i32.store offset=52 + local.get $0 + f64.const 0 + f64.store offset=56 + local.get $0 + i32.const 0 + i32.store8 offset=64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $object-literal/testOmittedTypes + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1632 + i32.store offset=12 + local.get $1 + i32.const 1632 + i32.store offset=4 + local.get $1 + i32.const 1632 + call $~lib/rt/itcms/__link + local.get $1 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + if + i32.const 0 + i32.const 1504 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1632 + i32.store offset=4 + local.get $0 + i32.const 1632 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.load offset=8 + f64.const 0 + f64.ne + if + i32.const 0 + i32.const 1504 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1504 - i32.const 28 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 65 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=41 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=42 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i64.const 0 - i64.store offset=16 - local.get $0 - f32.const 0 - f32.store offset=24 - local.get $0 - f64.const 0 - f64.store offset=32 - local.get $0 - i32.const 0 - i32.store8 offset=40 - local.get $0 - i32.const 0 - i32.store8 offset=41 - local.get $0 - i32.const 0 - i32.store16 offset=42 - local.get $0 - i32.const 0 - i32.store16 offset=44 - local.get $0 - i32.const 0 - i32.store offset=48 - local.get $0 - i32.const 0 - i32.store offset=52 - local.get $0 - f64.const 0 - f64.store offset=56 - local.get $0 - i32.const 0 - i32.store8 offset=64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $object-literal/testOmittedTypes - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/object/Object#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=12 - local.get $1 - i32.const 1632 - i32.store offset=4 - local.get $1 - i32.const 1632 - call $~lib/rt/itcms/__link - local.get $1 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - if + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1664 + i32.store offset=8 + local.get $0 + i32.const 1664 + i32.store + local.get $0 + i32.const 1664 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.store offset=8 + local.get $0 + i32.const 1696 + i32.store offset=4 + local.get $0 + i32.const 1696 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1504 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=4 - local.get $0 - i32.const 1632 - call $~lib/string/String.__eq - i32.eqz - if + i32.store offset=8 + local.get $0 i32.const 0 - i32.const 1504 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - f64.load offset=8 - f64.const 0 - f64.ne - if + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1504 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1664 - i32.store offset=8 - local.get $0 - i32.const 1664 - i32.store - local.get $0 - i32.const 1664 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1696 - i32.store offset=8 - local.get $0 - i32.const 1696 - i32.store offset=4 - local.get $0 - i32.const 1696 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=24 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=28 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 - i32.const 0 - i32.store offset=24 - local.get $0 - i32.const 0 - i32.store offset=28 - local.get $0 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $object-literal/testOmittedFoo - i32.const 34516 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=28 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $0 + i32.const 0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $object-literal/testOmittedFoo + i32.const 34516 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|1 end end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + return end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat index 4906ce43bf..8214c096b5 100644 --- a/tests/compiler/operator-overload-non-ambiguity.debug.wat +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -92,35 +92,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -346,20 +348,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -573,25 +577,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -609,26 +615,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -953,25 +961,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -980,35 +990,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1098,6 +1110,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1166,13 +1179,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1241,13 +1256,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1255,19 +1272,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1275,25 +1294,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1462,37 +1483,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1511,29 +1534,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2286,6 +2311,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index f74a3d0ef3..c9507f024e 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -105,35 +105,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -359,20 +361,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -586,25 +590,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -622,26 +628,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -966,25 +974,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -993,35 +1003,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1111,6 +1123,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1179,13 +1192,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1254,13 +1269,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1268,19 +1285,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1288,25 +1307,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1475,37 +1496,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1524,29 +1547,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2325,6 +2350,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this @@ -2704,25 +2730,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index f528abfabe..2d7d330d0a 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -143,19 +143,21 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - loop $while-continue|0 - local.get $a - if - i32.const 0 - drop - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $a - i32.store - i32.const 1 - i32.eqz - drop - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + local.get $a + if + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $a + i32.store + i32.const 1 + i32.eqz + drop + br $while-continue|0 + end end end global.get $~lib/memory/__stack_pointer @@ -172,21 +174,23 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - loop $while-continue|0 - local.get $a - if - i32.const 0 - drop - local.get $b + block $while-break|0 + loop $while-continue|0 + local.get $a if - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $a - i32.store i32.const 0 drop + local.get $b + if + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $a + i32.store + i32.const 0 + drop + end + br $while-continue|0 end - br $while-continue|0 end end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/possibly-null.release.wat b/tests/compiler/possibly-null.release.wat index 1d99cdc390..b681c5b383 100644 --- a/tests/compiler/possibly-null.release.wat +++ b/tests/compiler/possibly-null.release.wat @@ -1,6 +1,6 @@ (module - (type $0 (func (param i32 i32))) - (type $1 (func (param i32))) + (type $0 (func (param i32))) + (type $1 (func (param i32 i32))) (type $2 (func (param i32 i32 i32 i32))) (import "env" "abort" (func $~lib/builtins/abort (param i32 i32 i32 i32))) (global $~lib/memory/__stack_pointer (mut i32) (i32.const 33792)) @@ -8,13 +8,13 @@ (export "memory" (memory $0)) (export "testTrue" (func $export:possibly-null/testTrue)) (export "testFalseElse" (func $export:possibly-null/testTrue)) - (export "testFalseContinuation" (func $export:possibly-null/testTrue)) + (export "testFalseContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testNeNull" (func $export:possibly-null/testTrue)) (export "testEqNullElse" (func $export:possibly-null/testTrue)) - (export "testEqNullContinuation" (func $export:possibly-null/testTrue)) + (export "testEqNullContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testNotEqNull" (func $export:possibly-null/testTrue)) (export "testNotNeNullElse" (func $export:possibly-null/testTrue)) - (export "testNotNeNullContinuation" (func $export:possibly-null/testTrue)) + (export "testNotNeNullContinuation" (func $export:possibly-null/testFalseContinuation)) (export "testWhile" (func $export:possibly-null/testWhile)) (export "testWhile2" (func $export:possibly-null/testWhile2)) (export "testWhile3" (func $export:possibly-null/testWhile3)) @@ -48,6 +48,35 @@ i32.add global.set $~lib/memory/__stack_pointer ) + (func $export:possibly-null/testFalseContinuation (param $0 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1024 + i32.lt_s + if + i32.const 33824 + i32.const 33872 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + block $__inlined_func$possibly-null/testFalseContinuation$12 + local.get $0 + i32.eqz + br_if $__inlined_func$possibly-null/testFalseContinuation$12 + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) (func $export:possibly-null/testWhile (param $0 i32) global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 627d155d23..9bc0b39916 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -138,35 +138,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -392,20 +394,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -619,25 +623,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -655,26 +661,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -999,25 +1007,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1026,35 +1036,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1144,6 +1156,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1212,13 +1225,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1287,13 +1302,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1301,19 +1318,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1321,25 +1340,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1508,37 +1529,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1557,29 +1580,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2299,6 +2324,7 @@ return ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2331,6 +2357,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index aa9a780b2d..1182bd679d 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1407,6 +1407,7 @@ i32.sub ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index f915695912..1c3f0b630b 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -131,35 +131,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -385,20 +387,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -612,25 +616,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -648,26 +654,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -992,25 +1000,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1019,35 +1029,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1137,6 +1149,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1205,13 +1218,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1280,13 +1295,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1294,19 +1311,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1314,25 +1333,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1501,37 +1522,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1550,29 +1573,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2286,6 +2311,7 @@ i32.load ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2332,6 +2358,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index b57ed1cc78..4ca90b2350 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1400,6 +1400,7 @@ local.get $0 ) (func $export-default/theDefault + nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 5864d93eba..7a73a36ca3 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -113,35 +113,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -367,20 +369,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -594,25 +598,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -630,26 +636,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -974,25 +982,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1001,35 +1011,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1119,6 +1131,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1187,13 +1200,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1262,13 +1277,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1276,19 +1293,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,25 +1315,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1483,37 +1504,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1532,29 +1555,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2422,59 +2447,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 716 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 716 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2620,107 +2647,109 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - loop $while-continue|0 - local.get $num - i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num - local.get $t i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 716 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 716 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i64.ge_u + if + local.get $num + i64.const 100000000 + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 716 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 716 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $buffer @@ -2730,35 +2759,37 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1136 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1136 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2812,40 +2843,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2995,6 +3030,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3522,20 +3558,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -3548,20 +3586,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.0 + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -3586,20 +3626,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.0 + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix @@ -3722,20 +3764,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -3758,21 +3802,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + end else local.get $value i64.extend_i32_u diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index 61d868fd17..ccf35a9d65 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -2308,140 +2308,143 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $resolve-access/Container#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load - i32.wrap_i64 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1728 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 100000 - i32.lt_u - if (result i32) + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $resolve-access/Container#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load + i32.wrap_i64 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32$74 local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1728 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32$74 end - else + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 10000000 + i32.const 100000 i32.lt_u if (result i32) local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u + i32.add + end else local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add + i32.const 10000000 + i32.lt_u + if (result i32) + local.get $2 + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add + else + local.get $2 + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add + end end + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - local.tee $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + unreachable end i32.const 36128 i32.const 36176 diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index f911a1e884..652de0ffeb 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -191,38 +191,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -333,35 +335,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 448 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 448 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -587,20 +591,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -814,25 +820,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -850,26 +858,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1194,25 +1204,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1221,35 +1233,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1339,6 +1353,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1407,13 +1422,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1482,13 +1499,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1496,19 +1515,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1516,25 +1537,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1703,37 +1726,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1752,29 +1777,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2495,59 +2522,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 764 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 764 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2624,35 +2653,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1184 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2706,40 +2737,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -3951,441 +3986,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 9632 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 9632 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 9632 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 9632 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -4610,20 +4658,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -4689,20 +4739,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -4886,111 +4938,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8760 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 9456 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8760 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 9456 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -5455,27 +5511,29 @@ end end end - loop $while-continue|1 - local.get $e - if + block $while-break|1 + loop $while-continue|1 local.get $e - i32.const 1 - i32.and if - local.get $out + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x local.get $x i32.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -5615,6 +5673,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -7605,22 +7664,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -7645,23 +7706,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index ec97507c90..eee967bd50 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -136,35 +136,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -390,20 +392,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -617,25 +621,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -653,26 +659,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -997,25 +1005,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1024,35 +1034,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1142,6 +1154,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1210,13 +1223,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1285,13 +1300,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1299,19 +1316,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1319,25 +1338,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1506,37 +1527,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1555,29 +1578,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2499,441 +2524,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 1680 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 1680 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 1680 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 1680 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -2949,59 +2987,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1720 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1720 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1720 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1720 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -3298,20 +3338,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -3377,20 +3419,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -3574,111 +3618,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 808 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 1504 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 808 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 1504 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4031,73 +4079,77 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 return ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2544 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 2544 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -4151,40 +4203,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -4338,6 +4394,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -5453,20 +5510,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -5489,21 +5548,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + end else local.get $value i64.extend_i32_u diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index 96ada2500c..aceb2e1300 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -179,35 +179,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 496 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 496 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -433,20 +435,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -660,25 +664,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -696,26 +702,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1040,25 +1048,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1067,35 +1077,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1185,6 +1197,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1253,13 +1266,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1328,13 +1343,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1342,19 +1359,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1362,25 +1381,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1549,37 +1570,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1598,29 +1621,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2341,59 +2366,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 812 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 812 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 812 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 812 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2470,35 +2497,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1232 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1232 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2552,40 +2581,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2770,38 +2803,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2837,6 +2872,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -3194,22 +3230,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -3234,23 +3272,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-nested.debug.wat b/tests/compiler/resolve-nested.debug.wat index 41ee1e9f62..388b1821c9 100644 --- a/tests/compiler/resolve-nested.debug.wat +++ b/tests/compiler/resolve-nested.debug.wat @@ -26,6 +26,7 @@ (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) (func $resolve-nested/outer (param $a i32) (param $b i32) (param $c i32) + nop ) (func $~stack_check global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 915a1b52a1..3f14d09bab 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -92,35 +92,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -346,20 +348,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -573,25 +577,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -609,26 +615,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -953,25 +961,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -980,35 +990,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1098,6 +1110,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1166,13 +1179,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1241,13 +1256,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1255,19 +1272,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1275,25 +1294,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1462,37 +1483,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1511,29 +1534,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2243,6 +2268,7 @@ return ) (func $resolve-new/Foo#bar (param $this i32) + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2275,6 +2301,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 7c13c3bb67..83a996e6da 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -179,35 +179,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -433,20 +435,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -660,25 +664,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -696,26 +702,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1040,25 +1048,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1067,35 +1077,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1185,6 +1197,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1253,13 +1266,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1328,13 +1343,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1342,19 +1359,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1362,25 +1381,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1549,37 +1570,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1598,29 +1621,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2341,59 +2366,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2470,35 +2497,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2552,40 +2581,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2770,38 +2803,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2854,6 +2889,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -3464,22 +3500,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -3504,23 +3542,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 65d9fa68c2..9809b46658 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -187,35 +187,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -441,20 +443,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -668,25 +672,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -704,26 +710,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1048,25 +1056,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1075,35 +1085,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1193,6 +1205,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1261,13 +1274,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1336,13 +1351,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1350,19 +1367,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1370,25 +1389,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1557,37 +1578,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1606,29 +1629,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2349,67 +2374,69 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 i32.div_u local.set $t|9 local.get $num @@ -2478,35 +2505,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2560,40 +2589,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2778,38 +2811,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2878,441 +2913,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 3376 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 3376 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 3376 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 3376 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -3537,20 +3585,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -3616,20 +3666,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -3813,111 +3865,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2504 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3200 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2504 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 3200 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4242,6 +4298,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -4660,22 +4717,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -4700,23 +4759,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 9637f6a402..22d3d98a80 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -2418,16 +2418,24 @@ end ) (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) - i32.const 2 + local.get $0 + i32.const 1 + i32.add ) (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) - i32.const 3 + local.get $0 + i32.const 2 + i32.add ) (func $resolve-ternary/g1 (param $0 i32) (result i32) - i32.const 4 + local.get $0 + i32.const 3 + i32.add ) (func $resolve-ternary/g2 (param $0 i32) (result i32) - i32.const 5 + local.get $0 + i32.const 4 + i32.add ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -2502,282 +2510,285 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 37400 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 5 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 37400 + i32.sub i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $4 - i64.const 31 - i64.shl - local.get $4 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.set $1 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 31 - i64.shl - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $1 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $1 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify - i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 3472 - local.get $6 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 - local.get $0 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz - if + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3264 - i32.const 13 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4496 - i32.load - call_indirect (type $0) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4560 - i32.load - call_indirect (type $0) - i32.const 4 - i32.ne - if + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3232 + i32.store offset=4 + local.get $0 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 5 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 3264 - i32.const 35 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.tee $4 + i64.const 31 + i64.shl + local.get $4 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.set $1 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.const 31 + i64.shl + local.get $4 + i64.const 31 + i64.shl + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 31 + i64.shl + local.get $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + local.get $3 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $1 + global.get $~lib/util/number/_exp_pow i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - i32.const 4528 - i32.load - call_indirect (type $0) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 43 + i32.add + local.get $1 + local.get $3 + i64.const 2147483647 + i64.mul + local.get $4 + i64.const 2147483647 + i64.mul + local.get $4 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 4294966784 + i64.mul + local.get $1 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify i32.const 1 - call $~lib/builtins/abort - unreachable + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 3472 + local.get $6 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 + local.get $0 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 3264 + i32.const 13 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect (type $0) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4560 + i32.load + call_indirect (type $0) + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 35 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4528 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 43 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 37424 i32.const 37472 diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index f22d05a02b..82c13e8933 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -179,35 +179,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -433,20 +435,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -660,25 +664,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -696,26 +702,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1040,25 +1048,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1067,35 +1077,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1185,6 +1197,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1253,13 +1266,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1328,13 +1343,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1342,19 +1359,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1362,25 +1381,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1549,37 +1570,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1598,29 +1621,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2341,59 +2366,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2470,35 +2497,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2552,40 +2581,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2770,38 +2803,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2873,8 +2908,10 @@ return ) (func $start:resolve-unary~anonymous|0 + nop ) (func $resolve-unary/generic<~lib/string/String> (param $v i32) + nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2920,6 +2957,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -3951,22 +3989,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -3991,23 +4031,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index c08d881355..d27ae23492 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -95,35 +95,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -349,20 +351,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -576,25 +580,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -612,26 +618,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -956,25 +964,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -983,35 +993,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1101,6 +1113,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1169,13 +1182,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1244,13 +1259,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1258,19 +1275,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1278,25 +1297,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1465,37 +1486,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1514,29 +1537,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2382,6 +2407,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index 3a0fe739ab..4b18703cfe 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -17,6 +17,7 @@ (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) (func $return/nop + nop ) (func $start:return~anonymous|0 call $return/nop diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index 4509ebf226..eb8b71d15d 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -15,8 +15,10 @@ (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) (func $start:return~anonymous|0 + nop ) (func $return/testVoidReturn (param $0 i32) + nop ) (func $~start global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/alloc-large-memory.debug.wat b/tests/compiler/rt/alloc-large-memory.debug.wat index 9d12c607e6..7055f846d5 100644 --- a/tests/compiler/rt/alloc-large-memory.debug.wat +++ b/tests/compiler/rt/alloc-large-memory.debug.wat @@ -218,25 +218,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -254,26 +256,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -598,25 +602,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -625,35 +631,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -743,6 +751,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -811,13 +820,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -886,13 +897,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -900,19 +913,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -920,25 +935,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1500,17 +1517,19 @@ ) (func $start:rt/alloc-large-memory (local $i i32) - loop $while-continue|0 - memory.size - i32.const 128 - i32.ne - if - i32.const 32 - i32.const 1024 - i32.mul - call $~lib/memory/heap.alloc - drop - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + memory.size + i32.const 128 + i32.ne + if + i32.const 32 + i32.const 1024 + i32.mul + call $~lib/memory/heap.alloc + drop + br $while-continue|0 + end end end i32.const 0 diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index d3cb87b0de..bbddd7907e 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -95,35 +95,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -349,20 +351,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -592,25 +596,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -628,26 +634,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -972,25 +980,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -999,35 +1009,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1117,6 +1129,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1185,13 +1198,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1260,13 +1275,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,19 +1291,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1294,25 +1313,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1485,37 +1506,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1534,29 +1557,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2285,14 +2310,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2368,6 +2395,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index 2071e914a1..ee15452795 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -92,35 +92,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -346,20 +348,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -573,25 +577,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -609,26 +615,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -953,25 +961,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -980,35 +990,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1098,6 +1110,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1166,13 +1179,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1241,13 +1256,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1255,19 +1272,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1275,25 +1294,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1462,37 +1483,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1511,29 +1534,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2267,14 +2292,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2321,6 +2348,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index e0441f24cb..0bf2e3b6d0 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -98,35 +98,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -352,20 +354,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -579,25 +583,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -615,26 +621,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -959,25 +967,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -986,35 +996,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1104,6 +1116,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1172,13 +1185,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1247,13 +1262,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1261,19 +1278,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1281,25 +1300,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1468,37 +1489,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1517,29 +1540,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2336,14 +2361,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2392,6 +2419,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 4ba694d3dc..5552841605 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -235,25 +235,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -271,26 +273,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -615,25 +619,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -642,35 +648,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -760,6 +768,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -828,13 +837,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -903,13 +914,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -917,19 +930,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -937,25 +952,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1845,35 +1862,37 @@ local.get $pn call $~lib/rt/tcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/tcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if + i32.const 1 + drop + local.get $iter + call $~lib/rt/tcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 213 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add i32.const 0 - i32.const 96 - i32.const 213 - i32.const 16 - call $~lib/builtins/abort - unreachable + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/tcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $iter - br $while-continue|0 end end global.get $~lib/rt/tcms/white @@ -1884,35 +1903,37 @@ local.get $to call $~lib/rt/tcms/Object#get:next local.set $iter - loop $while-continue|1 - local.get $iter - local.get $to - i32.ne - if - i32.const 1 - drop + block $while-break|1 + loop $while-continue|1 local.get $iter - call $~lib/rt/tcms/Object#get:color - local.get $black - i32.eq - i32.eqz + local.get $to + i32.ne if + i32.const 1 + drop + local.get $iter + call $~lib/rt/tcms/Object#get:color + local.get $black + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 223 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add i32.const 0 - i32.const 96 - i32.const 223 - i32.const 16 - call $~lib/builtins/abort - unreachable + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/tcms/Object#get:next + local.set $iter + br $while-continue|1 end - local.get $iter - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $iter - br $while-continue|1 end end global.get $~lib/rt/tcms/fromSpace @@ -1920,55 +1941,57 @@ local.get $from call $~lib/rt/tcms/Object#get:next local.set $iter - loop $while-continue|2 - local.get $iter - local.get $from - i32.ne - if - i32.const 1 - drop + block $while-break|2 + loop $while-continue|2 local.get $iter - call $~lib/rt/tcms/Object#get:color - global.get $~lib/rt/tcms/white - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 232 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $newNext - local.get $iter - global.get $~lib/memory/__heap_base - i32.lt_u + local.get $from + i32.ne if + i32.const 1 + drop local.get $iter - i32.const 0 - call $~lib/rt/tcms/Object#set:nextWithColor + call $~lib/rt/tcms/Object#get:color + global.get $~lib/rt/tcms/white + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 232 + i32.const 16 + call $~lib/builtins/abort + unreachable + end local.get $iter - i32.const 0 - call $~lib/rt/tcms/Object#set:prev - else - global.get $~lib/rt/tcms/total + call $~lib/rt/tcms/Object#get:next + local.set $newNext local.get $iter - call $~lib/rt/tcms/Object#get:size - i32.sub - global.set $~lib/rt/tcms/total - i32.const 0 - drop - local.get $iter - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $iter + i32.const 0 + call $~lib/rt/tcms/Object#set:nextWithColor + local.get $iter + i32.const 0 + call $~lib/rt/tcms/Object#set:prev + else + global.get $~lib/rt/tcms/total + local.get $iter + call $~lib/rt/tcms/Object#get:size + i32.sub + global.set $~lib/rt/tcms/total + i32.const 0 + drop + local.get $iter + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free + end + local.get $newNext + local.set $iter + br $while-continue|2 end - local.get $newNext - local.set $iter - br $while-continue|2 end end local.get $from @@ -2042,6 +2065,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index da03f96897..d5ceadd9af 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -203,8 +203,10 @@ return ) (func $~lib/rt/stub/__unpin (param $ptr i32) + nop ) (func $~lib/rt/stub/__collect + nop ) (func $~start global.get $~lib/memory/__heap_base diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index fabd2bbc75..770363418c 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -135,8 +135,10 @@ local.get $0 ) (func $~lib/rt/stub/__unpin (param $0 i32) + nop ) (func $~lib/rt/stub/__collect + nop ) (func $~start i32.const 1196 diff --git a/tests/compiler/scoped.debug.wat b/tests/compiler/scoped.debug.wat index 4703e91d9b..8bfcc7134e 100644 --- a/tests/compiler/scoped.debug.wat +++ b/tests/compiler/scoped.debug.wat @@ -32,6 +32,7 @@ i32.const 1 i32.lt_s if + nop local.get $anotherStartFunctionLocal i32.const 1 i32.add diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index f6d7384348..a8afa06109 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -131,35 +131,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -385,20 +387,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -612,25 +616,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -648,26 +654,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -992,25 +1000,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1019,35 +1029,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1137,6 +1149,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1205,13 +1218,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1280,13 +1295,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1294,19 +1311,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1314,25 +1333,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1501,37 +1522,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1550,29 +1573,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -6819,6 +6844,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index a86f14c3ee..5df4a1ad29 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -132,38 +132,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 805fdac3a4..5d1fd0eb92 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -127,35 +127,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 512 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 512 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -381,20 +383,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -608,25 +612,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -644,26 +650,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -988,25 +996,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1015,35 +1025,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1133,6 +1145,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1201,13 +1214,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1276,13 +1291,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1290,19 +1307,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1310,25 +1329,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1497,37 +1518,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1546,29 +1569,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2456,6 +2481,7 @@ i32.load offset=4 ) (func $std/array-literal/doesntLeak (param $refs i32) + nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2477,14 +2503,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2579,6 +2607,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3971,25 +4000,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -4041,25 +4072,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index 752b4957b2..a962cdc1ab 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -436,35 +436,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -690,20 +692,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -917,25 +921,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -953,26 +959,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1297,25 +1305,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1324,35 +1334,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1442,6 +1454,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1510,13 +1523,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1585,13 +1600,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1599,19 +1616,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1619,25 +1638,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1806,37 +1827,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1855,29 +1878,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -3243,40 +3268,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -3370,40 +3397,42 @@ i32.const 8 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - i32.const 7 - i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $i + i32.const 7 i32.add - local.set $front - local.get $ptr - local.get $tail - i32.add - local.get $i - i32.sub - local.set $back - local.get $front - i64.load - call $~lib/polyfills/bswap - local.set $temp - local.get $front - local.get $back - i64.load - call $~lib/polyfills/bswap - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 8 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.add + local.set $front + local.get $ptr + local.get $tail + i32.add + local.get $i + i32.sub + local.set $back + local.get $front + i64.load + call $~lib/polyfills/bswap + local.set $temp + local.get $front + local.get $back + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 8 + i32.add + local.set $i + br $while-continue|0 + end end end i32.const 1 @@ -3414,40 +3443,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|1 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 0 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load8_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load8_u - i32.store8 - local.get $back|9 - local.get $temp|10 - i32.store8 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load8_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load8_u + i32.store8 + local.get $back|9 + local.get $temp|10 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 + end end end end @@ -3496,86 +3527,90 @@ i32.const 2 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $i i32.const 1 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl i32.add - local.set $back - local.get $back - i32.load - i32.const 16 - i32.rotr - local.set $temp - local.get $back - local.get $front - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $front - local.get $temp - i32.store - local.get $i - i32.const 2 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back + local.get $back + i32.load + i32.const 16 + i32.rotr + local.set $temp + local.get $back + local.get $front + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $front + local.get $temp + i32.store + local.get $i + i32.const 2 + i32.add + local.set $i + br $while-continue|0 + end end end local.get $len i32.const 1 i32.sub local.set $tail - loop $while-continue|1 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load16_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load16_u - i32.store16 - local.get $back|9 - local.get $temp|10 - i32.store16 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load16_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load16_u + i32.store16 + local.get $back|9 + local.get $temp|10 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 + end end end end @@ -3749,59 +3784,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 6700 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6700 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -3878,35 +3915,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 7120 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7120 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -3960,40 +3999,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -4354,149 +4397,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + f32.load + local.set $a local.get $a - f32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + f32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - f32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + f32.load + local.set $a local.get $a - f32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + f32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + f32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - f32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -4536,83 +4581,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -4913,149 +4962,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + f64.load + local.set $a local.get $a - f64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + f64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - f64.store offset=16 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + f64.load + local.set $a local.get $a - f64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + f64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + f64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - f64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -5095,83 +5146,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -5421,149 +5476,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -5603,83 +5660,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -5900,149 +5961,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -6082,83 +6145,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -6591,38 +6658,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -6739,20 +6808,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6805,20 +6876,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.3 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6887,441 +6960,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 12368 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 12368 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 12368 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 12368 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -7546,20 +7632,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.4 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -7625,20 +7713,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.5 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -7822,111 +7912,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 11496 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 12192 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 11496 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 12192 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -8404,20 +8498,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.6 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -8476,20 +8572,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.7 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -8630,20 +8728,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.8 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -8727,107 +8827,109 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - loop $while-continue|0 - local.get $num - i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num - local.get $t i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 6700 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 6700 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i64.ge_u + if + local.get $num + i64.const 100000000 + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 6700 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6700 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $buffer @@ -8894,40 +8996,44 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.10 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.1 + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end local.get $sign local.get $decimals @@ -9028,40 +9134,44 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.12 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.3 + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end local.get $sign local.get $decimals @@ -9134,20 +9244,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.13 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -9212,14 +9324,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -9305,6 +9419,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -12827,34 +12942,36 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq + local.get $len + i32.lt_s if + local.get $ptr local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -12932,34 +13049,36 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.get $value - f32.eq + local.get $len + i32.lt_s if + local.get $ptr local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + f32.load + local.get $value + f32.eq + if + local.get $fromIndex + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -13037,34 +13156,36 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.get $value - f64.eq + local.get $len + i32.lt_s if + local.get $ptr local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + f64.load + local.get $value + f64.eq + if + local.get $fromIndex + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -13136,34 +13257,36 @@ local.get $5 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - i32.const 0 - i32.ge_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq + i32.const 0 + i32.ge_s if + local.get $ptr local.get $fromIndex - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $fromIndex + i32.const 1 + i32.sub + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.sub - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -13320,47 +13443,49 @@ local.get $8 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem - local.get $elem - local.get $value - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $len + i32.lt_s + if + local.get $ptr + local.get $fromIndex + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem local.get $elem - f32.ne - local.get $value local.get $value - f32.ne - i32.and - end - if + f32.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f32.ne + local.get $value + local.get $value + f32.ne + i32.and + end + if + i32.const 1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $fromIndex i32.const 1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const 0 @@ -13371,6 +13496,12 @@ global.set $~lib/memory/__stack_pointer local.get $8 return + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 ) (func $~lib/array/Array#includes (param $this i32) (param $value f64) (param $fromIndex i32) (result i32) (local $len i32) @@ -13441,47 +13572,49 @@ local.get $8 call $~lib/array/Array#get:dataStart local.set $ptr - loop $while-continue|0 - local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem - local.get $elem - local.get $value - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $len + i32.lt_s + if + local.get $ptr + local.get $fromIndex + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem local.get $elem - f64.ne - local.get $value local.get $value - f64.ne - i32.and - end - if + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f64.ne + local.get $value + local.get $value + f64.ne + i32.and + end + if + i32.const 1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + return + end + local.get $fromIndex i32.const 1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const 0 @@ -13492,6 +13625,12 @@ global.set $~lib/memory/__stack_pointer local.get $8 return + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 ) (func $~lib/array/Array#splice (param $this i32) (param $start i32) (param $deleteCount i32) (result i32) (local $len i32) @@ -16528,143 +16667,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -17099,143 +17240,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -17941,143 +18084,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -18510,143 +18655,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -19203,30 +19350,32 @@ i32.const 2 i32.shl local.set $end|18 - loop $while-continue|0 - local.get $off - local.get $end|18 - i32.lt_u - if - local.get $thisBase - local.get $off - i32.add - i32.load - local.set $ref - local.get $sliceBase - local.get $off - i32.add - local.get $ref - i32.store - local.get $slice - local.get $ref - i32.const 1 - call $~lib/rt/itcms/__link + block $while-break|0 + loop $while-continue|0 local.get $off - i32.const 4 - i32.add - local.set $off - br $while-continue|0 + local.get $end|18 + i32.lt_u + if + local.get $thisBase + local.get $off + i32.add + i32.load + local.set $ref + local.get $sliceBase + local.get $off + i32.add + local.get $ref + i32.store + local.get $slice + local.get $ref + i32.const 1 + call $~lib/rt/itcms/__link + local.get $off + i32.const 4 + i32.add + local.set $off + br $while-continue|0 + end end end local.get $slice @@ -19356,195 +19505,197 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $max - i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $max i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $max + i32.store offset=12 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -19616,95 +19767,99 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -20255,143 +20410,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -21093,195 +21250,197 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $max - i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $max i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $max + i32.store offset=12 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -21353,95 +21512,99 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -21992,143 +22155,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/extendRunRight<~lib/array/Array> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/insertionSort<~lib/array/Array> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/array/Array> + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/array/Array> + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -22848,195 +23013,197 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $max - i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $max i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $max + i32.store offset=12 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -23108,95 +23275,99 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -23747,143 +23918,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/extendRunRight> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/insertionSort> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns> + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns> + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -24260,195 +24433,197 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $max - i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $max i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $max + i32.store offset=12 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -24520,95 +24695,99 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -25159,143 +25338,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/extendRunRight<~lib/string/String|null> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/insertionSort<~lib/string/String|null> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/string/String|null> + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -26614,195 +26795,197 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $max - i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $max i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $max + i32.store offset=12 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if + global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.tee $a + i32.store local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -26874,95 +27057,99 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -27513,143 +27700,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/extendRunRight<~lib/string/String> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/insertionSort<~lib/string/String> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/insertionSort<~lib/string/String> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/string/String> + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/string/String> + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -29524,6 +29713,12 @@ global.set $~lib/memory/__stack_pointer local.get $4 return + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 ) (func $~lib/util/string/joinReferenceArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -44887,25 +45082,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45009,25 +45206,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45127,25 +45326,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45317,25 +45518,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45507,25 +45710,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45601,25 +45806,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45695,25 +45902,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -45943,25 +46152,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -46013,25 +46224,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -46083,25 +46296,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -46153,25 +46368,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -46347,22 +46564,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -46387,23 +46606,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 @@ -46540,20 +46761,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -46576,21 +46799,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.1 + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + end else local.get $value i64.extend_i32_u @@ -46778,20 +47003,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.9 + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -46804,20 +47031,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.0 + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -46842,20 +47071,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.0 + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix @@ -46982,22 +47213,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.11 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -47012,22 +47245,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.2 + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -47054,22 +47289,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.1 + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 5f279cc7b7..6614cc0006 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -15199,11 +15199,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -15212,7 +15212,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15222,22 +15222,22 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$736 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $7 i32.const 0 i32.lt_s if @@ -15246,127 +15246,126 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$736 end - block $folding-inner0 - local.get $0 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 11 - i32.add - local.get $0 - i32.mul - i32.const 11 + i32.const 8 i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$736 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 11 + i32.add + local.get $7 + i32.mul + i32.const 11 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if local.get $0 - local.get $3 - i32.gt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 if - local.get $7 + local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 - i32.const 2 + local.get $1 + local.get $5 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $2 - i32.add - local.set $2 local.get $5 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $2 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $6 - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 - end + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$736 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -15392,11 +15391,11 @@ i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -15405,7 +15404,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $4 + local.set $6 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15415,22 +15414,22 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$737 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $7 i32.const 0 i32.lt_s if @@ -15439,127 +15438,126 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$737 end - block $folding-inner0 - local.get $0 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + local.get $7 + i32.eqz + if + local.get $6 + i32.load + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.shr_u - local.tee $5 - i32.const 10 + i32.const 8 i32.add - local.get $0 - i32.mul - i32.const 10 - i32.add - local.tee $6 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$737 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.shr_u + local.tee $5 + i32.const 10 + i32.add + local.get $7 + i32.mul + i32.const 10 + i32.add + local.tee $3 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $4 + local.get $7 + i32.lt_s + if local.get $0 - local.get $3 - i32.gt_s + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $4 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.set $2 + local.get $5 if - local.get $7 + local.get $0 local.get $2 i32.const 1 i32.shl i32.add - local.get $4 - local.get $3 - i32.const 2 + local.get $1 + local.get $5 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $2 - i32.add - local.set $2 local.get $5 - if - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $1 - local.get $5 - i32.const 1 - i32.shl - memory.copy - local.get $2 - local.get $5 - i32.add - local.set $2 - end - local.get $3 - i32.const 1 i32.add - local.set $3 - br $for-loop|0 + local.set $2 end + local.get $4 + i32.const 1 + i32.add + local.set $4 + br $for-loop|0 end - local.get $6 - local.get $7 - local.get $2 - i32.const 1 - i32.shl - i32.add - local.get $4 + end + local.get $0 + local.get $2 + i32.const 1 + i32.shl + i32.add + local.get $6 + local.get $7 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $2 + i32.add + local.tee $1 + local.get $3 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered - local.get $2 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner0 - end + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$737 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -15742,6 +15740,7 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $2 i32.const 1 @@ -15757,8 +15756,7 @@ local.get $2 i32.add local.tee $0 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 @@ -16086,7 +16084,7 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray$8 (result i32) + block $__inlined_func$~lib/util/string/joinReferenceArray$6 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -16111,7 +16109,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$6 end local.get $2 i32.eqz @@ -16136,7 +16134,7 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray$8 + br $__inlined_func$~lib/util/string/joinReferenceArray$6 end i32.const 11568 local.set $0 @@ -16299,11 +16297,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -16320,7 +16318,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -16329,7 +16327,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16339,22 +16337,22 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$738 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $6 i32.const 0 i32.lt_s if @@ -16363,121 +16361,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end - block $folding-inner00 - local.get $0 - i32.eqz + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$738 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add local.get $3 + local.get $5 + i32.add i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner00 + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 11 - i32.add local.get $0 - i32.mul - i32.const 11 - i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - local.get $5 - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add + i32.store local.get $0 - local.get $3 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + br $__inlined_func$~lib/util/string/joinIntegerArray$738 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -16496,30 +16493,73 @@ call $~lib/builtins/abort unreachable ) - (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) (local $2 i32) - (local $3 i64) + (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) - (local $7 i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$739 + local.get $0 i32.const 1 i32.sub - local.tee $7 + local.tee $6 i32.const 0 i32.lt_s if @@ -16528,48 +16568,427 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - return + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 end - local.get $7 + local.get $6 i32.eqz if - local.get $0 - i64.load - local.set $3 + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa64$485 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 local.get $3 - i64.eqz + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 i32.add - global.set $~lib/memory/__stack_pointer - i32.const 7712 local.set $1 - br $__inlined_func$~lib/util/number/utoa64$485 end local.get $3 - i64.const 4294967295 - i64.le_u - if - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.wrap_i64 - local.tee $0 - i32.const 100000 - i32.lt_u - if (result i32) + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$739 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/array/Array#toString (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$740 + local.get $0 + i32.const 1 + i32.sub + local.tee $6 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 + end + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$740 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 48992 + i32.const 49040 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $~lib/util/string/joinIntegerArray (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) + (local $3 i64) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.const 1 + i32.sub + local.tee $7 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + return + end + local.get $7 + i32.eqz + if + local.get $0 + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa64$485 + local.get $3 + i64.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 7712 + local.set $1 + br $__inlined_func$~lib/util/number/utoa64$485 + end + local.get $3 + i64.const 4294967295 + i64.le_u + if + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.wrap_i64 + local.tee $0 + i32.const 100000 + i32.lt_u + if (result i32) local.get $0 i32.const 100 i32.lt_u @@ -16760,6 +17179,7 @@ br $for-loop|0 end end + local.get $5 local.get $6 local.get $2 i32.const 1 @@ -16775,8 +17195,7 @@ local.get $2 i32.add local.tee $0 - local.get $5 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $6 @@ -16853,11 +17272,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -16874,7 +17293,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16192 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -16883,7 +17302,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -16893,22 +17312,22 @@ global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$741 local.get $0 i32.const 1 i32.sub - local.tee $0 + local.tee $6 i32.const 0 i32.lt_s if @@ -16917,121 +17336,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end - block $folding-inner00 - local.get $0 - i32.eqz - if - local.get $3 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner00 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $4 - i32.const 10 - i32.add - local.get $0 - i32.mul - i32.const 10 + i32.const 8 i32.add - local.tee $5 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store offset=4 - loop $for-loop|0 + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$741 + end + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if local.get $0 - local.get $2 - i32.gt_s + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.set $1 - local.get $4 - if - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $4 - i32.const 1 - i32.shl - memory.copy - local.get $1 - local.get $4 - i32.add - local.set $1 - end - local.get $2 + local.get $0 + local.get $1 i32.const 1 + i32.shl i32.add - local.set $2 - br $for-loop|0 + i32.const 11856 + local.get $4 + i32.const 1 + i32.shl + memory.copy + local.get $1 + local.get $4 + i32.add + local.set $1 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $5 - local.get $6 - local.get $1 - i32.const 1 - i32.shl - i32.add + end + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + local.get $2 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store local.get $0 - local.get $3 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner00 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$741 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -17097,48 +17515,22 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 (result i32) + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17147,169 +17539,198 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 20 - memory.fill + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.sub - local.tee $5 - i32.const 0 - i32.lt_s - if + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 (result i32) global.get $~lib/memory/__stack_pointer i32.const 20 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + local.get $0 + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + end + local.get $4 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.load + local.tee $0 + i32.store + local.get $0 + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/array/Array#toString + else + i32.const 11568 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + end i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 - end - local.get $5 - i32.eqz - if + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $3 + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 + i32.store + local.get $6 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 + call $~lib/array/Array#toString + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $3 + local.get $0 + local.get $6 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + local.get $2 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $4 + i32.const 2 + i32.shl + i32.add i32.load - local.tee $0 + local.tee $1 i32.store - local.get $0 - if (result i32) + local.get $1 + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 call $~lib/array/Array#toString - else - i32.const 11568 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$11 end - i32.const 11568 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $5 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - call $~lib/array/Array#toString - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $4 - local.get $0 - local.get $6 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $5 - i32.const 2 - i32.shl + i32.const 4 i32.add - i32.load - local.tee $1 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/array/Array#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer local.get $0 + return end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return + unreachable end i32.const 48992 i32.const 49040 @@ -17529,16 +17950,17 @@ (local $1 i32) (local $2 i32) (local $3 i32) - (local $4 i64) - (local $5 f64) - (local $6 f32) - (local $7 i32) + (local $4 i32) + (local $5 i64) + (local $6 f64) + (local $7 f32) (local $8 i32) (local $9 i32) (local $10 i32) (local $11 i32) (local $12 i32) (local $13 i32) + (local $14 i32) global.get $~lib/memory/__stack_pointer i32.const 448 i32.sub @@ -17589,9 +18011,9 @@ global.set $std/array/arr i32.const 0 call $std/array/Ref#constructor - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -17608,12 +18030,12 @@ i32.const 12 i32.const 6 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 @@ -17629,91 +18051,91 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store offset=8 - local.get $1 + local.get $2 i32.eqz if global.get $~lib/memory/__stack_pointer i32.const 12 i32.const 3 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 1 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=12 - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.store - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - local.get $8 + local.get $2 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $8 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 1664 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.eqz if i32.const 0 @@ -17729,30 +18151,30 @@ i32.const 7 i32.const 1696 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1728 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17764,28 +18186,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1760 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17797,27 +18219,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1792 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $1 - local.get $7 + local.get $8 + i32.store offset=8 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17829,28 +18251,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1824 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17862,27 +18284,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1856 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17894,28 +18316,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 0 i32.const 7 i32.const 1888 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17932,30 +18354,30 @@ i32.const 8 i32.const 1920 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 1968 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -17967,28 +18389,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2016 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18000,27 +18422,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2064 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18032,28 +18454,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2112 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18065,27 +18487,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2160 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18097,28 +18519,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 8 i32.const 2208 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18135,30 +18557,30 @@ i32.const 9 i32.const 2256 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 1 i32.const 1 i32.const 3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2304 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18170,28 +18592,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2352 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18203,27 +18625,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 1 i32.const 0 i32.const -3 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2400 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18235,28 +18657,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const 2 i32.const -2 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2448 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18268,27 +18690,27 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 f32.const 0 i32.const 1 i32.const 0 call $~lib/array/Array#fill global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2496 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18300,28 +18722,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const -1 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2544 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18333,28 +18755,28 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 f32.const -0 i32.const 0 call $~lib/array/Array#fill@varargs global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 9 i32.const 2592 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $std/array/isArraysEqual i32.eqz if @@ -18367,9 +18789,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -18381,9 +18803,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18397,16 +18819,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 42 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -18421,9 +18843,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18437,9 +18859,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18453,9 +18875,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#pop i32.const 42 i32.ne @@ -18469,9 +18891,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -18483,9 +18905,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18499,16 +18921,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -18522,9 +18944,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18538,9 +18960,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18555,16 +18977,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -18578,9 +19000,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18594,9 +19016,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18611,9 +19033,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18628,16 +19050,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 45 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18651,9 +19073,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18667,9 +19089,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18684,9 +19106,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18701,9 +19123,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18717,30 +19139,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=20 - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $7 + local.get $8 i32.const 1 i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.store offset=24 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -18753,14 +19175,14 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $7 + local.get $8 i32.const 0 i32.const 0 call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18768,9 +19190,9 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -18786,12 +19208,12 @@ i32.const 4 i32.const 2688 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#at i32.const 1 @@ -18805,9 +19227,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#at i32.const 4 @@ -18821,9 +19243,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const -1 call $~lib/array/Array#at i32.const 4 @@ -18837,9 +19259,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const -4 call $~lib/array/Array#at i32.const 1 @@ -18855,26 +19277,26 @@ global.get $~lib/memory/__stack_pointer i32.const 0 call $~lib/array/Array#constructor - local.tee $1 + local.tee $2 i32.store offset=32 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18888,9 +19310,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18903,9 +19325,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -18918,26 +19340,26 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 2736 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 call $~lib/array/Array#concat drop global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -18950,9 +19372,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -18966,9 +19388,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -18982,9 +19404,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -18998,35 +19420,35 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 46 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 47 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $8 + local.tee $9 i32.store - local.get $8 + local.get $9 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19039,9 +19461,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -19054,9 +19476,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19069,9 +19491,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 0 call $~lib/array/Array#__get i32.const 43 @@ -19085,9 +19507,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 1 call $~lib/array/Array#__get i32.const 44 @@ -19101,9 +19523,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 2 call $~lib/array/Array#__get i32.const 45 @@ -19117,9 +19539,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 3 call $~lib/array/Array#__get i32.const 46 @@ -19133,9 +19555,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.const 4 call $~lib/array/Array#__get i32.const 47 @@ -19149,15 +19571,15 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#pop drop global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19175,12 +19597,12 @@ i32.const 4 i32.const 2768 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -19191,22 +19613,22 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $7 + local.tee $8 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - local.get $7 + local.get $2 + local.get $8 call $~lib/array/Array#concat - local.tee $7 + local.tee $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -19219,9 +19641,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -19237,32 +19659,32 @@ i32.const 4 i32.const 2800 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2848 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19280,32 +19702,32 @@ i32.const 4 i32.const 2896 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 1 i32.const 3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 2944 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19323,32 +19745,32 @@ i32.const 4 i32.const 2992 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3040 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19366,32 +19788,32 @@ i32.const 4 i32.const 3088 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3136 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19409,31 +19831,31 @@ i32.const 4 i32.const 3184 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 0 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3232 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19451,31 +19873,31 @@ i32.const 4 i32.const 3280 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 1 i32.const 3 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3328 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19493,31 +19915,31 @@ i32.const 4 i32.const 3376 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 1 i32.const 2 i32.const 4 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3424 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19535,32 +19957,32 @@ i32.const 4 i32.const 3472 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 0 i32.const -2 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3520 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19578,31 +20000,31 @@ i32.const 4 i32.const 3568 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const 0 i32.const -2 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3616 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19620,31 +20042,31 @@ i32.const 4 i32.const 3664 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const -4 i32.const -3 i32.const -2 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3712 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19662,31 +20084,31 @@ i32.const 4 i32.const 3760 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 - local.get $1 + local.get $2 i32.const -4 i32.const -3 i32.const -1 call $~lib/array/Array#copyWithin - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3808 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19704,32 +20126,32 @@ i32.const 4 i32.const 3856 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=48 i32.const 2 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const -4 i32.const -3 call $~lib/array/Array#copyWithin@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 3904 call $~lib/rt/__newArray - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store offset=8 - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -19743,16 +20165,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 42 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -19766,9 +20188,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19782,9 +20204,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -19799,9 +20221,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -19816,9 +20238,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -19833,9 +20255,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -19850,16 +20272,16 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 41 call $~lib/array/Array#unshift global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 5 i32.ne @@ -19873,9 +20295,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -19889,9 +20311,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 41 @@ -19906,9 +20328,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 42 @@ -19923,9 +20345,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 43 @@ -19940,9 +20362,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 44 @@ -19957,9 +20379,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 4 call $~lib/array/Array#__get i32.const 45 @@ -19974,7 +20396,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -19988,11 +20410,11 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 0 i32.le_s if @@ -20004,41 +20426,41 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.tee $8 + local.tee $9 i32.load - local.set $9 - local.get $8 - local.get $8 + local.set $10 + local.get $9 + local.get $9 i32.const 4 i32.add - local.get $7 + local.get $8 i32.const 1 i32.sub - local.tee $7 + local.tee $8 i32.const 2 i32.shl - local.tee $10 + local.tee $11 memory.copy - local.get $8 - local.get $10 + local.get $9 + local.get $11 i32.add i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 - local.get $7 + local.get $2 + local.get $8 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $9 + local.get $10 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -20053,9 +20475,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -20069,9 +20491,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20085,9 +20507,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20102,9 +20524,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20119,9 +20541,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20136,9 +20558,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 3 call $~lib/array/Array#__get i32.const 45 @@ -20153,9 +20575,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#pop global.set $std/array/i global.get $std/array/i @@ -20171,9 +20593,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20187,9 +20609,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20203,9 +20625,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 42 @@ -20220,9 +20642,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20237,9 +20659,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 44 @@ -20258,33 +20680,33 @@ i32.const 4 i32.const 3952 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=52 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4000 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20297,29 +20719,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const 4 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4032 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20332,29 +20754,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 i32.const 5 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 4 i32.const 2 i32.const 4 i32.const 4064 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20367,24 +20789,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $7 - local.get $1 + local.get $8 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20397,30 +20819,30 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -2 call $~lib/array/Array#slice@varargs - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4112 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20433,29 +20855,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4144 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20468,29 +20890,29 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const -3 i32.const -1 call $~lib/array/Array#slice - local.tee $7 + local.tee $8 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 4176 call $~lib/rt/__newArray - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=8 - local.get $7 local.get $8 + local.get $9 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -20503,17 +20925,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const -1 i32.const -3 call $~lib/array/Array#slice - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $~lib/array/Array#get:length if i32.const 0 @@ -20524,18 +20946,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 i32.const 1 global.set $~argumentsLength - local.get $1 + local.get $2 i32.const 10 call $~lib/array/Array#slice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -20547,7 +20969,7 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 4 @@ -20561,59 +20983,59 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=4 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $1 + local.tee $2 i32.const 1 i32.gt_u if - local.get $1 + local.get $2 i32.const 1 i32.shr_u - local.set $8 - local.get $1 + local.set $9 + local.get $2 i32.const 1 i32.sub - local.set $1 + local.set $2 loop $while-continue|0 - local.get $3 - local.get $8 + local.get $4 + local.get $9 i32.lt_u if - local.get $7 - local.get $3 + local.get $8 + local.get $4 i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load - local.set $10 - local.get $9 - local.get $7 - local.get $1 - local.get $3 + local.set $11 + local.get $10 + local.get $8 + local.get $2 + local.get $4 i32.sub i32.const 2 i32.shl i32.add - local.tee $9 + local.tee $10 i32.load i32.store - local.get $9 local.get $10 + local.get $11 i32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 + local.set $4 br $while-continue|0 end end @@ -20624,9 +21046,9 @@ global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -20640,9 +21062,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $std/array/internalCapacity i32.const 8 i32.ne @@ -20656,9 +21078,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get i32.const 44 @@ -20673,9 +21095,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get i32.const 43 @@ -20690,9 +21112,9 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get i32.const 42 @@ -20707,57 +21129,57 @@ end global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 43 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $2 i32.const 4 i32.const 0 i32.const 7 i32.const 4208 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $4 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=60 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|0 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20786,40 +21208,40 @@ i32.const 7 i32.const 4240 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=64 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|1 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20848,40 +21270,40 @@ i32.const 7 i32.const 4272 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=68 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|2 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20910,40 +21332,40 @@ i32.const 11 i32.const 4320 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=72 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|3 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -20972,40 +21394,40 @@ i32.const 11 i32.const 4368 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=76 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|4 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21034,40 +21456,40 @@ i32.const 11 i32.const 4416 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store local.get $0 - local.get $1 + local.get $2 call $~lib/array/Array#reverse - local.tee $1 + local.tee $2 i32.store offset=80 i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $3 + local.set $4 loop $for-loop|5 local.get $0 - local.get $3 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $7 - local.get $1 + local.get $8 + local.get $2 call $~lib/array/Array#get:length local.get $0 i32.sub @@ -21292,12 +21714,12 @@ i32.const 9 i32.const 4464 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21310,14 +21732,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store block $__inlined_func$~lib/array/Array#indexOf$712 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21327,22 +21749,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf$712 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|01 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|05 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 2 i32.shl i32.add @@ -21356,11 +21778,11 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$712 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|01 + local.set $0 + br $while-continue|05 end end global.get $~lib/memory/__stack_pointer @@ -21368,9 +21790,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21386,12 +21808,12 @@ i32.const 12 i32.const 4496 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21404,14 +21826,14 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store block $__inlined_func$~lib/array/Array#indexOf$713 - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21421,22 +21843,22 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 br $__inlined_func$~lib/array/Array#indexOf$713 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|02 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|07 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add @@ -21450,11 +21872,11 @@ global.set $~lib/memory/__stack_pointer br $__inlined_func$~lib/array/Array#indexOf$713 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|02 + local.set $0 + br $while-continue|07 end end global.get $~lib/memory/__stack_pointer @@ -21462,9 +21884,9 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const -1 - local.set $1 + local.set $0 end - local.get $1 + local.get $0 i32.const -1 i32.ne if @@ -21765,12 +22187,12 @@ i32.const 9 i32.const 4576 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21783,13 +22205,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21802,24 +22224,24 @@ br $__inlined_func$~lib/array/Array#includes$714 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|03 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|09 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 2 i32.shl i32.add f32.load - local.tee $6 - local.get $6 + local.tee $7 + local.get $7 f32.ne if global.get $~lib/memory/__stack_pointer @@ -21829,11 +22251,11 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$714 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|03 + local.set $0 + br $while-continue|09 end end global.get $~lib/memory/__stack_pointer @@ -21857,12 +22279,12 @@ i32.const 12 i32.const 4608 call $~lib/rt/__newArray - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -21875,13 +22297,13 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.eqz - local.get $3 + local.get $4 i32.const 0 i32.le_s i32.or @@ -21894,24 +22316,24 @@ br $__inlined_func$~lib/array/Array#includes$715 end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 i32.load offset=4 - local.set $0 - loop $while-continue|04 - local.get $1 - local.get $3 + local.set $2 + loop $while-continue|011 + local.get $0 + local.get $4 i32.lt_s if + local.get $2 local.get $0 - local.get $1 i32.const 3 i32.shl i32.add f64.load - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if global.get $~lib/memory/__stack_pointer @@ -21921,11 +22343,11 @@ i32.const 1 br $__inlined_func$~lib/array/Array#includes$715 end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $while-continue|04 + local.set $0 + br $while-continue|011 end end global.get $~lib/memory/__stack_pointer @@ -22034,21 +22456,21 @@ local.get $0 i32.const 0 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 5 i32.const 2 i32.const 4 i32.const 4688 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22068,12 +22490,12 @@ i32.const 4 i32.const 4736 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22100,21 +22522,21 @@ i32.const 0 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 4816 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22134,12 +22556,12 @@ i32.const 4 i32.const 4848 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22167,21 +22589,21 @@ local.get $0 i32.const 2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 i32.const 2 i32.const 4 i32.const 4944 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22201,12 +22623,12 @@ i32.const 4 i32.const 4976 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22233,21 +22655,21 @@ i32.const 2 i32.const 2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5056 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22267,12 +22689,12 @@ i32.const 4 i32.const 5088 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22299,21 +22721,21 @@ i32.const 0 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5168 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22333,12 +22755,12 @@ i32.const 4 i32.const 5200 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22366,21 +22788,21 @@ local.get $0 i32.const -1 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5296 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22400,12 +22822,12 @@ i32.const 4 i32.const 5328 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22433,21 +22855,21 @@ local.get $0 i32.const -2 call $~lib/array/Array#splice@varargs - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 5424 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22467,12 +22889,12 @@ i32.const 4 i32.const 5456 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22499,21 +22921,21 @@ i32.const -2 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5536 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22533,12 +22955,12 @@ i32.const 4 i32.const 5568 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22565,21 +22987,21 @@ i32.const -7 i32.const 1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 5664 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22599,12 +23021,12 @@ i32.const 4 i32.const 5696 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22631,21 +23053,21 @@ i32.const -2 i32.const -1 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5792 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22665,12 +23087,12 @@ i32.const 4 i32.const 5824 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22697,21 +23119,21 @@ i32.const 1 i32.const -2 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 5920 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22731,12 +23153,12 @@ i32.const 4 i32.const 5952 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22763,21 +23185,21 @@ i32.const 4 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6048 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22797,12 +23219,12 @@ i32.const 4 i32.const 6080 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22829,21 +23251,21 @@ i32.const 7 i32.const 0 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6176 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22863,12 +23285,12 @@ i32.const 4 i32.const 6208 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22895,21 +23317,21 @@ i32.const 7 i32.const 5 call $~lib/array/Array#splice - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 0 i32.const 2 i32.const 4 i32.const 6304 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $1 - local.get $3 + local.get $2 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22929,12 +23351,12 @@ i32.const 4 i32.const 6336 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -22961,12 +23383,12 @@ local.get $0 i32.const 1 call $~lib/array/Array#splice - local.tee $1 + local.tee $2 i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length if i32.const 0 @@ -22997,41 +23419,41 @@ i32.const 10 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=100 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 3 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 3 i32.const 4 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 4 i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $1 + local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#splice local.tee $0 @@ -23057,11 +23479,11 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 i32.load i32.const 3 i32.ne @@ -23096,9 +23518,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 3 i32.ne @@ -23111,9 +23533,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get local.set $0 @@ -23133,9 +23555,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.set $0 @@ -23155,9 +23577,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 + local.get $2 i32.const 2 call $~lib/array/Array#__get local.set $0 @@ -23184,29 +23606,29 @@ i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=104 - local.get $1 + local.get $2 i32.const 0 i32.const 1 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 + local.get $2 i32.const 2 i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set local.get $0 - local.get $1 + local.get $2 i32.store offset=108 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -23220,88 +23642,88 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.le_s select - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 1 - local.get $3 - local.get $7 - i32.sub - local.tee $8 + local.get $4 local.get $8 + i32.sub + local.tee $9 + local.get $9 i32.const 1 i32.gt_s select - local.tee $8 + local.tee $9 i32.const 0 - local.get $8 + local.get $9 i32.const 0 i32.gt_s select - local.tee $8 + local.tee $9 i32.const 2 i32.const 13 i32.const 0 call $~lib/rt/__newArray - local.tee $9 + local.tee $10 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 i32.load offset=4 - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $10 - local.get $1 + local.get $11 + local.get $2 i32.load offset=4 - local.tee $10 - local.get $7 + local.tee $11 + local.get $8 i32.const 2 i32.shl i32.add - local.tee $11 - local.get $8 + local.tee $12 + local.get $9 i32.const 2 i32.shl memory.copy - local.get $7 local.get $8 + local.get $9 i32.add - local.tee $7 - local.get $3 + local.tee $8 + local.get $4 i32.ne if + local.get $12 local.get $11 - local.get $10 - local.get $7 + local.get $8 i32.const 2 i32.shl i32.add - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.sub i32.const 2 i32.shl memory.copy end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 - local.get $3 - local.get $8 + local.get $2 + local.get $4 + local.get $9 i32.sub i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -23309,12 +23731,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $9 + local.get $10 i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $~lib/array/Array#get:length i32.const 1 i32.ne @@ -23327,10 +23749,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.const 0 call $~lib/array/Array#__get local.tee $0 @@ -23361,9 +23783,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length i32.const 2 i32.ne @@ -23376,9 +23798,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 0 call $~lib/array/Array#__get if @@ -23390,10 +23812,10 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.const 1 call $~lib/array/Array#__get local.tee $0 @@ -24280,23 +24702,23 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|6 - local.get $1 + local.get $0 i32.const 100 i32.lt_s if global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $0 + local.tee $2 i32.store - local.get $0 + local.get $2 call $~lib/array/Array#pop drop - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|6 end end @@ -24332,7 +24754,7 @@ local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 9296 @@ -24352,81 +24774,81 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 2 i32.const 16 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 i32.const 0 - local.set $3 - loop $for-loop|00 + local.set $4 + loop $for-loop|012 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $3 - local.get $7 - local.get $1 - i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.get $4 + local.get $8 + local.get $2 + i32.load offset=12 + local.tee $11 + local.get $8 + local.get $11 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $11 + local.get $2 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $11 - local.get $3 - local.get $1 + local.get $12 + local.get $4 + local.get $2 i32.const 9296 i32.load call_indirect (type $1) - local.tee $11 + local.tee $12 i32.store offset=12 - local.get $9 local.get $10 - i32.add local.get $11 + i32.add + local.get $12 i32.store - local.get $8 - local.get $11 + local.get $9 + local.get $12 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $4 + br $for-loop|012 end end global.get $~lib/memory/__stack_pointer @@ -24434,13 +24856,13 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $8 + local.get $9 i32.store offset=128 global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr - local.tee $1 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 9328 @@ -24460,73 +24882,73 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.load offset=12 - local.tee $7 + local.tee $8 i32.const 2 i32.const 9 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 i32.const 0 - local.set $3 - loop $for-loop|01 + local.set $4 + loop $for-loop|013 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $3 - local.get $7 - local.get $1 + local.get $4 + local.get $8 + local.get $2 i32.load offset=12 - local.tee $10 - local.get $7 - local.get $10 + local.tee $11 + local.get $8 + local.get $11 i32.lt_s select i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $3 + local.get $4 i32.const 2 i32.shl - local.tee $10 - local.get $1 + local.tee $11 + local.get $2 i32.load offset=4 i32.add i32.load - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store i32.const 3 global.set $~argumentsLength - local.get $9 local.get $10 - i32.add local.get $11 - local.get $3 - local.get $1 + i32.add + local.get $12 + local.get $4 + local.get $2 i32.const 9328 i32.load call_indirect (type $15) f32.store - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|01 + local.set $4 + br $for-loop|013 end end global.get $~lib/memory/__stack_pointer @@ -24534,12 +24956,12 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $8 + local.get $9 i32.store offset=132 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $~lib/array/Array#get:length i32.const 4 i32.ne @@ -24552,17 +24974,17 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.const 0 call $~lib/array/Array#__get - local.set $6 + local.set $7 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store - local.get $6 + local.get $7 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -25364,26 +25786,26 @@ i64.const -7046029254386353131 call $~lib/bindings/dom/Math.random i64.reinterpret_f64 - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.eqz select - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -25391,22 +25813,22 @@ global.get $~lib/math/random_state0_64 i64.const -1 i64.xor - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -49064778989728563 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor i64.const -4265267296055464877 i64.mul - local.tee $4 - local.get $4 + local.tee $5 + local.get $5 i64.const 33 i64.shr_u i64.xor @@ -25423,243 +25845,243 @@ i32.store offset=140 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=144 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=148 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=152 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=156 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=160 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=164 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=168 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=172 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=176 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=180 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=184 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=188 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/inputStabArr @@ -25673,243 +26095,243 @@ i32.store offset=192 global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=196 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 95 i32.store offset=4 local.get $0 i32.const 0 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=200 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 125 i32.store offset=4 local.get $0 i32.const 1 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=204 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 130 i32.store offset=4 local.get $0 i32.const 2 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=208 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 70 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 3 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=212 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 75 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 140 i32.store offset=4 local.get $0 i32.const 4 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=216 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store offset=4 local.get $0 i32.const 5 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=220 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 90 i32.store offset=4 local.get $0 i32.const 6 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=224 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 80 i32.store offset=4 local.get $0 i32.const 7 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=228 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store offset=4 local.get $0 i32.const 8 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=232 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 120 i32.store offset=4 local.get $0 i32.const 9 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=236 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 100 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 135 i32.store offset=4 local.get $0 i32.const 10 - local.get $1 + local.get $2 call $~lib/array/Array#__set global.get $~lib/memory/__stack_pointer call $std/array/Dim#constructor - local.tee $1 + local.tee $2 i32.store offset=240 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 110 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 i32.const 115 i32.store offset=4 local.get $0 i32.const 11 - local.get $1 + local.get $2 call $~lib/array/Array#__set local.get $0 global.set $std/array/outputStabArr @@ -25936,12 +26358,12 @@ i32.const 9 i32.const 10288 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -25975,12 +26397,12 @@ i32.const 9 i32.const 10384 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -25997,10 +26419,10 @@ i32.const 12 i32.const 10448 call $~lib/rt/__newArray - local.tee $0 + local.tee $2 i32.store offset=252 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 0 global.set $~argumentsLength @@ -26022,7 +26444,7 @@ i32.const 10544 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 10544 @@ -26039,22 +26461,22 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=4 - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 - local.get $0 + local.get $2 i32.load offset=12 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store - local.get $1 - local.get $3 + local.get $0 + local.get $4 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26065,20 +26487,20 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store i32.const 8 i32.const 3 i32.const 12 i32.const 10576 call $~lib/rt/__newArray - local.set $1 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 - block $__inlined_func$std/array/isArraysEqual$13 (result i32) + block $__inlined_func$std/array/isArraysEqual$9 (result i32) i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -26091,48 +26513,48 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $0 + local.get $2 call $~lib/array/Array#get:length - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store block $folding-inner1 block $folding-inner01 - local.get $1 + local.get $4 call $~lib/array/Array#get:length - local.get $7 + local.get $8 i32.ne br_if $folding-inner01 - local.get $0 - local.get $1 + local.get $2 + local.get $4 i32.eq br_if $folding-inner1 loop $for-loop|02 - local.get $3 - local.get $7 + local.get $0 + local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne if (result i32) global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $1 - local.get $3 + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.tee $5 - local.get $5 + local.tee $6 + local.get $6 f64.ne else i32.const 0 @@ -26140,22 +26562,22 @@ i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 i64.shr_u i32.wrap_i64 - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store - local.get $8 - local.get $1 - local.get $3 + local.get $9 + local.get $4 + local.get $0 call $~lib/array/Array#__get i64.reinterpret_f64 i64.const 63 @@ -26164,26 +26586,26 @@ i32.ne br_if $folding-inner01 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store + local.get $2 local.get $0 - local.get $3 call $~lib/array/Array#__get - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - local.get $3 + local.get $4 + i32.store + local.get $4 + local.get $0 call $~lib/array/Array#__get - local.get $5 + local.get $6 f64.ne br_if $folding-inner01 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|02 end end @@ -26194,7 +26616,7 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual$13 + br $__inlined_func$std/array/isArraysEqual$9 end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26263,12 +26685,12 @@ i32.const 4 i32.const 10752 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26332,18 +26754,18 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - local.get $1 - local.get $3 + local.get $2 + local.get $4 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26361,12 +26783,12 @@ i32.const 8 i32.const 10880 call $~lib/rt/__newArray - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 local.get $0 - local.get $1 + local.get $2 call $std/array/isArraysEqual i32.eqz if @@ -26383,7 +26805,7 @@ i32.const 4 i32.const 10928 call $~lib/rt/__newArray - local.tee $3 + local.tee $4 i32.store offset=264 global.get $~lib/memory/__stack_pointer i32.const 1 @@ -26391,7 +26813,7 @@ i32.const 4 i32.const 10960 call $~lib/rt/__newArray - local.tee $7 + local.tee $8 i32.store offset=268 global.get $~lib/memory/__stack_pointer i32.const 2 @@ -26399,7 +26821,7 @@ i32.const 4 i32.const 10992 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=272 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26407,7 +26829,7 @@ i32.const 4 i32.const 11024 call $~lib/rt/__newArray - local.tee $9 + local.tee $10 i32.store offset=276 global.get $~lib/memory/__stack_pointer i32.const 4 @@ -26415,57 +26837,57 @@ i32.const 4 i32.const 11072 call $~lib/rt/__newArray - local.tee $10 + local.tee $11 i32.store offset=280 global.get $~lib/memory/__stack_pointer i32.const 64 call $std/array/createReverseOrderedArray - local.tee $11 + local.tee $12 i32.store offset=284 global.get $~lib/memory/__stack_pointer i32.const 128 call $std/array/createReverseOrderedArray - local.tee $12 + local.tee $13 i32.store offset=288 global.get $~lib/memory/__stack_pointer i32.const 1024 call $std/array/createReverseOrderedArray - local.tee $0 + local.tee $14 i32.store offset=292 global.get $~lib/memory/__stack_pointer i32.const 10000 call $std/array/createReverseOrderedArray - local.tee $1 + local.tee $0 i32.store offset=296 global.get $~lib/memory/__stack_pointer i32.const 512 call $std/array/createRandomOrderedArray - local.tee $13 + local.tee $2 i32.store offset=300 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store i32.const 1 i32.const 2 i32.const 4 i32.const 11152 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $7 - local.get $3 + local.get $8 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26478,24 +26900,24 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store i32.const 2 i32.const 2 i32.const 4 i32.const 11184 call $~lib/rt/__newArray - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $8 - local.get $3 + local.get $9 + local.get $4 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26508,18 +26930,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store - local.get $9 + local.get $10 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $9 local.get $10 + local.get $11 i32.const 0 call $std/array/isArraysEqual i32.eqz @@ -26532,18 +26954,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store - local.get $11 + local.get $12 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $12 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 + local.get $12 local.get $11 - local.get $10 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26556,18 +26978,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store - local.get $12 + local.get $13 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $12 + local.get $13 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $12 - local.get $10 + local.get $13 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26580,18 +27002,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $14 i32.store - local.get $0 + local.get $14 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $14 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $0 - local.get $10 + local.get $14 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26604,18 +27026,18 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $10 + local.get $11 i32.store offset=8 - local.get $1 - local.get $10 + local.get $0 + local.get $11 i32.const 4 call $std/array/isArraysEqual i32.eqz @@ -26628,9 +27050,9 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $13 + local.get $2 i32.store - local.get $13 + local.get $2 call $std/array/assertSortedDefault global.get $~lib/memory/__stack_pointer i32.const 24 @@ -26645,10 +27067,10 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $0 i32.store offset=8 i32.const 1 global.set $~argumentsLength @@ -26664,7 +27086,7 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26678,79 +27100,79 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=12 - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.le_s select - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.sub - local.tee $3 + local.tee $4 i32.const 0 - local.get $3 + local.get $4 i32.const 0 i32.gt_s select - local.tee $3 + local.tee $4 i32.const 2 i32.const 23 i32.const 0 call $~lib/rt/__newArray - local.tee $8 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $8 + local.get $9 i32.load offset=4 - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store - local.get $1 + local.get $0 i32.load offset=4 - local.get $7 + local.get $8 i32.const 2 i32.shl i32.add - local.set $7 + local.set $8 i32.const 0 - local.set $1 - local.get $3 + local.set $0 + local.get $4 i32.const 2 i32.shl - local.set $3 - loop $while-continue|05 - local.get $1 - local.get $3 + local.set $4 + loop $while-continue|06 + local.get $0 + local.get $4 i32.lt_u if - local.get $1 - local.get $9 + local.get $0 + local.get $10 i32.add - local.get $1 - local.get $7 + local.get $0 + local.get $8 i32.add i32.load - local.tee $10 + local.tee $11 i32.store - local.get $8 - local.get $10 + local.get $9 + local.get $11 i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 4 i32.add - local.set $1 - br $while-continue|05 + local.set $0 + br $while-continue|06 end end global.get $~lib/memory/__stack_pointer @@ -26762,30 +27184,30 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $0 - local.get $8 + local.get $2 + local.get $9 i32.const 11216 call $~lib/array/Array#sort local.tee $0 i32.store offset=12 i32.const 1 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr - local.tee $1 + local.tee $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.set $1 - loop $for-loop|023 + local.set $2 + loop $for-loop|014 local.get $1 local.get $2 - i32.gt_s + i32.lt_s if block $for-break0 global.get $~lib/memory/__stack_pointer @@ -26793,64 +27215,64 @@ i32.store global.get $~lib/memory/__stack_pointer local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.tee $7 + local.tee $8 i32.store offset=16 global.get $~lib/memory/__stack_pointer global.get $std/array/outputStabArr - local.tee $8 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 - local.get $2 + local.get $9 + local.get $1 call $~lib/array/Array#__get - local.tee $8 + local.tee $9 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store + local.get $10 local.get $9 - local.get $8 i32.load i32.ne if (result i32) i32.const 1 else global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store - local.get $7 + local.get $8 i32.load offset=4 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store - local.get $7 local.get $8 + local.get $9 i32.load offset=4 i32.ne end if i32.const 0 - local.set $3 + local.set $4 br $for-break0 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|023 + local.set $1 + br $for-loop|014 end end end - local.get $3 + local.get $4 i32.eqz if i32.const 0 @@ -26980,26 +27402,26 @@ i32.const 32 i32.const 1 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $2 - local.get $3 + local.get $4 i32.store local.get $2 - local.get $3 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 - local.get $3 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $2 @@ -27022,7 +27444,7 @@ i32.store i32.const 0 local.set $0 - loop $for-loop|03 + loop $for-loop|015 local.get $0 i32.const 2 i32.lt_s @@ -27030,12 +27452,12 @@ global.get $~lib/memory/__stack_pointer i32.const 1 call $~lib/array/Array#constructor - local.tee $3 + local.tee $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 + local.get $4 i32.const 0 i32.const 1 local.get $0 @@ -27045,17 +27467,17 @@ local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=12 local.get $2 local.get $0 - local.get $3 + local.get $4 call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|03 + br $for-loop|015 end end global.get $~lib/memory/__stack_pointer @@ -27075,7 +27497,7 @@ i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27091,7 +27513,7 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27110,89 +27532,89 @@ i32.const 16 i32.const 32 call $~lib/rt/itcms/__new - local.tee $3 + local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store - local.get $3 + local.get $2 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 2048 i32.const 1 call $~lib/rt/itcms/__new - local.tee $2 + local.tee $4 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $4 i32.store offset=12 - local.get $3 local.get $2 + local.get $4 i32.store - local.get $3 local.get $2 + local.get $4 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 local.get $2 + local.get $4 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 2048 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 - local.get $3 + local.get $2 i32.const 512 i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $3 + local.get $0 + local.get $2 i32.store i32.const 0 - local.set $2 - loop $for-loop|04 - local.get $2 + local.set $0 + loop $for-loop|06 + local.get $0 i32.const 512 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27209,14 +27631,14 @@ i32.const 4 i32.const 31 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $4 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 i32.const 511 - local.get $2 + local.get $0 i32.sub i32.store global.get $~lib/memory/__stack_pointer @@ -27224,33 +27646,33 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=8 - local.get $3 local.get $2 - local.get $1 + local.get $0 + local.get $4 call $~lib/array/Array#__set - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|04 + local.set $0 + br $for-loop|06 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $3 + local.get $1 + local.get $2 i32.store offset=316 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11408 i32.store offset=8 - local.get $3 + local.get $2 i32.const 11408 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27267,7 +27689,7 @@ i32.const 34 i32.const 11648 call $~lib/rt/__newArray - local.tee $1 + local.tee $2 i32.store offset=324 global.get $~lib/memory/__stack_pointer local.get $0 @@ -27321,9 +27743,9 @@ local.get $0 i32.const 11696 call $~lib/array/Array#sort - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store global.get $~lib/memory/__stack_pointer i32.const 11696 @@ -27343,44 +27765,44 @@ i32.const 0 i32.store offset=8 i32.const 1 - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store - local.get $3 + local.get $4 call $~lib/array/Array#get:length - local.set $7 - loop $for-loop|05 - local.get $2 - local.get $7 + local.set $8 + loop $for-loop|07 + local.get $1 + local.get $8 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 - local.get $2 + local.get $4 + local.get $1 i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.store offset=8 - local.get $3 - local.get $2 + local.get $4 + local.get $1 call $~lib/array/Array#__get - local.set $9 + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $10 i32.store offset=4 i32.const 2 global.set $~argumentsLength - local.get $8 local.get $9 + local.get $10 i32.const 11696 i32.load call_indirect (type $0) @@ -27394,11 +27816,11 @@ i32.const 0 br $__inlined_func$std/array/isSorted<~lib/string/String|null>$660 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|05 + local.set $1 + br $for-loop|07 end end global.get $~lib/memory/__stack_pointer @@ -27424,12 +27846,12 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 (result i32) + block $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27450,13 +27872,13 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 call $~lib/array/Array#get:length - local.get $3 + local.get $4 i32.ne if global.get $~lib/memory/__stack_pointer @@ -27464,10 +27886,10 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end local.get $0 - local.get $1 + local.get $2 i32.eq if global.get $~lib/memory/__stack_pointer @@ -27475,34 +27897,34 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 1 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end i32.const 0 - local.set $2 - loop $for-loop|06 - local.get $2 - local.get $3 + local.set $1 + loop $for-loop|08 + local.get $1 + local.get $4 i32.lt_s if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $2 + local.get $1 call $~lib/array/Array#__get - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $1 local.get $2 + local.get $1 call $~lib/array/Array#__get - local.set $8 + local.set $9 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27516,34 +27938,34 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $8 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $7 local.get $8 + local.get $9 call $~lib/string/String.__eq i32.eqz - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 + local.get $8 if global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer i32.const 0 - br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$740 + br $__inlined_func$std/array/isArraysEqual<~lib/string/String|null>$746 end - local.get $2 + local.get $1 i32.const 1 i32.add - local.set $2 - br $for-loop|06 + local.set $1 + br $for-loop|08 end end global.get $~lib/memory/__stack_pointer @@ -27562,7 +27984,7 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27597,34 +28019,34 @@ i32.const 16 i32.const 16 call $~lib/rt/itcms/__new - local.tee $8 + local.tee $9 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store - local.get $8 + local.get $9 i32.const 0 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27634,34 +28056,34 @@ local.tee $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $8 + local.get $9 local.get $1 i32.store - local.get $8 + local.get $9 local.get $1 i32.const 0 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 1600 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 - local.get $8 + local.get $9 i32.const 400 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -27669,25 +28091,23 @@ i32.add global.set $~lib/memory/__stack_pointer local.get $0 - local.get $8 + local.get $9 i32.store i32.const 0 - local.set $2 - loop $for-loop|045 - local.get $2 + local.set $4 + loop $for-loop|019 + local.get $4 i32.const 400 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 call $~lib/math/NativeMath.random f64.const 32 f64.mul i32.trunc_sat_f64_s - local.set $9 - i32.const 0 - local.set $0 + local.set $10 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -27701,29 +28121,31 @@ i32.const 20 memory.fill i32.const 11568 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store - loop $for-loop|07 - local.get $0 - local.get $9 + i32.const 0 + local.set $1 + loop $for-loop|00 + local.get $1 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $10 + local.set $11 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=12 call $~lib/math/NativeMath.random - local.set $5 + local.set $6 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=16 - local.get $5 + local.get $6 i32.const 10028 i32.load i32.const 1 @@ -27732,7 +28154,7 @@ f64.mul f64.floor i32.trunc_sat_f64_s - local.set $11 + local.set $12 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27748,7 +28170,7 @@ i32.const 10032 i32.store block $__inlined_func$~lib/string/String#charAt$735 - local.get $11 + local.get $12 i32.const 10028 i32.load i32.const 1 @@ -27760,17 +28182,17 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 + local.set $2 br $__inlined_func$~lib/string/String#charAt$735 end global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - local.get $1 - local.get $11 + local.get $2 + local.get $12 i32.const 1 i32.shl i32.const 10032 @@ -27783,19 +28205,19 @@ global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=8 - local.get $10 - local.get $3 - local.get $1 + local.get $11 + local.get $0 + local.get $2 call $~lib/string/String.__concat - local.tee $3 + local.tee $0 i32.store - local.get $0 + local.get $1 i32.const 1 i32.add - local.set $0 - br $for-loop|07 + local.set $1 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer @@ -27803,28 +28225,28 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $0 i32.store offset=8 - local.get $8 - local.get $2 - local.get $3 + local.get $9 + local.get $4 + local.get $0 call $~lib/array/Array#__set - local.get $2 + local.get $4 i32.const 1 i32.add - local.set $2 - br $for-loop|045 + local.set $4 + br $for-loop|019 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 local.get $8 + local.get $9 i32.store offset=328 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store i32.const 1 global.set $~argumentsLength @@ -27846,12 +28268,12 @@ i32.const 11728 i32.store global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11728 i32.store offset=8 - local.get $8 + local.get $9 i32.const 11728 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer @@ -27886,7 +28308,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $7 + local.set $8 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -27897,9 +28319,9 @@ i32.const 11856 i32.store i32.const 0 - local.set $2 + local.set $1 i32.const 0 - local.set $3 + local.set $4 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -27911,7 +28333,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinBooleanArray$19 + block $__inlined_func$~lib/util/string/joinBooleanArray$14 local.get $0 i32.const 1 i32.sub @@ -27924,20 +28346,20 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + local.set $2 + br $__inlined_func$~lib/util/string/joinBooleanArray$14 end - block $folding-inner04 + block $folding-inner07 local.get $0 i32.eqz if i32.const 11792 i32.const 11824 - local.get $7 + local.get $8 i32.load8_u select - local.set $1 - br $folding-inner04 + local.set $2 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -27947,86 +28369,86 @@ i32.load i32.const 1 i32.shr_u - local.tee $8 + local.tee $9 i32.const 5 i32.add local.get $0 i32.mul i32.const 5 i32.add - local.tee $9 + local.tee $10 i32.const 1 i32.shl i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 + local.tee $2 i32.store offset=4 - loop $for-loop|15 + loop $for-loop|18 local.get $0 - local.get $3 + local.get $4 i32.gt_s if - local.get $3 - local.get $7 + local.get $4 + local.get $8 i32.add i32.load8_u - local.tee $10 + local.tee $11 i32.eqz i32.const 4 i32.add - local.set $11 - local.get $1 + local.set $12 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.const 11792 i32.const 11824 - local.get $10 - select local.get $11 + select + local.get $12 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $11 + local.get $1 + local.get $12 i32.add - local.set $2 - local.get $8 + local.set $1 + local.get $9 if - local.get $1 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add i32.const 11856 - local.get $8 + local.get $9 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $8 + local.get $1 + local.get $9 i32.add - local.set $2 + local.set $1 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|15 + local.set $4 + br $for-loop|18 end end local.get $0 - local.get $7 + local.get $8 i32.add i32.load8_u local.tee $0 i32.eqz i32.const 4 i32.add - local.set $3 - local.get $1 + local.set $4 local.get $2 + local.get $1 i32.const 1 i32.shl i32.add @@ -28034,31 +28456,31 @@ i32.const 11824 local.get $0 select - local.get $3 + local.get $4 i32.const 1 i32.shl memory.copy - local.get $2 - local.get $3 + local.get $1 + local.get $4 i32.add local.tee $0 - local.get $9 + local.get $10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store - local.get $1 + local.get $2 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner04 + local.set $2 + br $folding-inner07 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinBooleanArray$19 + br $__inlined_func$~lib/util/string/joinBooleanArray$14 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -28070,12 +28492,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 11888 i32.store offset=8 - local.get $1 + local.get $2 i32.const 11888 call $~lib/string/String.__eq i32.eqz @@ -28371,653 +28793,263 @@ i32.const 11856 i32.store offset=332 local.get $1 - call $~lib/array/Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13792 - i32.store offset=8 - local.get $0 - i32.const 13792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1203 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 2 - i32.const 4 - i32.const 13888 - call $~lib/rt/__newArray - local.tee $0 - i32.store offset=352 - global.get $~lib/memory/__stack_pointer - i32.const 1 - i32.const 2 - i32.const 4 - i32.const 13920 - call $~lib/rt/__newArray - local.tee $1 - i32.store offset=356 - global.get $~lib/memory/__stack_pointer - i32.const 2 - i32.const 2 - i32.const 4 - i32.const 13952 - call $~lib/rt/__newArray - local.tee $2 - i32.store offset=360 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 2 - i32.const 4 - i32.const 13984 - call $~lib/rt/__newArray - local.tee $3 - i32.store offset=364 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - local.get $0 - i32.const 11568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1213 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=48 - local.get $1 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 13568 - i32.store offset=8 - local.get $0 - i32.const 13568 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1214 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=48 - local.get $2 - call $~lib/array/Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 14032 - i32.store offset=8 - local.get $0 - i32.const 14032 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 1215 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=48 - local.get $3 - call $~lib/array/Array#toString + call $~lib/array/Array#join local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14064 + i32.const 13792 i32.store offset=8 local.get $0 - i32.const 14064 + i32.const 13792 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1216 + i32.const 1203 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 38 - i32.const 14112 + i32.const 2 + i32.const 4 + i32.const 13888 call $~lib/rt/__newArray - local.set $0 + local.tee $0 + i32.store offset=352 + global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.const 2 + i32.const 4 + i32.const 13920 + call $~lib/rt/__newArray + local.tee $1 + i32.store offset=356 + global.get $~lib/memory/__stack_pointer + i32.const 2 + i32.const 2 + i32.const 4 + i32.const 13952 + call $~lib/rt/__newArray + local.tee $2 + i32.store offset=360 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.const 2 + i32.const 4 + i32.const 13984 + call $~lib/rt/__newArray + local.tee $4 + i32.store offset=364 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=48 local.get $0 - call $~lib/array/Array#toString + call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14144 + i32.const 11568 i32.store offset=8 local.get $0 - i32.const 14144 + i32.const 11568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1218 + i32.const 1213 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 3 - i32.const 0 - i32.const 38 - i32.const 14176 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=48 - local.get $0 - call $~lib/array/Array#toString + local.get $1 + call $~lib/array/Array#toString local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14208 + i32.const 13568 i32.store offset=8 local.get $0 - i32.const 14208 + i32.const 13568 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1219 + i32.const 1214 i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 3 - i32.const 1 - i32.const 11 - i32.const 14256 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - i32.const 0 - local.set $0 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$20 - local.get $2 - i32.const 1 - i32.sub - local.tee $7 - i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 - end - block $folding-inner05 - local.get $7 - i32.eqz - if - local.get $3 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $1 - br $folding-inner05 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 10 - i32.add - local.get $7 - i32.mul - i32.const 10 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $for-loop|08 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|08 - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner05 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$20 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=48 + local.get $2 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 14288 + i32.const 14032 i32.store offset=8 - local.get $1 - i32.const 14288 + local.get $0 + i32.const 14032 call $~lib/string/String.__eq i32.eqz if i32.const 0 i32.const 1552 - i32.const 1220 + i32.const 1215 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 2 - i32.const 1 - i32.const 39 - i32.const 14336 - call $~lib/rt/__newArray - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 i32.store offset=48 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $4 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer + i32.const 14064 + i32.store offset=8 + local.get $0 + i32.const 14064 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1216 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 i32.const 0 - i32.store + i32.const 38 + i32.const 14112 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=48 local.get $0 - i32.load offset=4 - local.set $3 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - i32.load offset=12 - local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store + i32.const 14144 + i32.store offset=8 + local.get $0 + i32.const 14144 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1218 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 3 i32.const 0 + i32.const 38 + i32.const 14176 + call $~lib/rt/__newArray local.set $0 - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + local.get $0 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner2 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$21 - local.get $2 - i32.const 1 - i32.sub - local.tee $7 + i32.const 14208 + i32.store offset=8 + local.get $0 + i32.const 14208 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 - end - block $folding-inner06 - local.get $7 - i32.eqz - if - local.get $3 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $1 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.tee $8 - i32.const 11 - i32.add - local.get $7 - i32.mul - i32.const 11 - i32.add - local.tee $9 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=4 - loop $for-loop|09 - local.get $1 - local.get $7 - i32.lt_s - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.set $0 - local.get $8 - if - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.const 11856 - local.get $8 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $8 - i32.add - local.set $0 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|09 - end - end - local.get $2 - local.get $0 - i32.const 1 - i32.shl - i32.add - local.get $3 - local.get $7 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered - local.get $0 - i32.add - local.tee $0 - local.get $9 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/string/String#substring - local.set $1 - br $folding-inner06 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$21 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1552 + i32.const 1219 + i32.const 3 + call $~lib/builtins/abort + unreachable end + i32.const 3 + i32.const 1 + i32.const 11 + i32.const 14256 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + local.get $0 + call $~lib/array/Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 14288 + i32.store offset=8 + local.get $0 + i32.const 14288 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 1220 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1 + i32.const 39 + i32.const 14336 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=48 + local.get $0 + call $~lib/array/Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 14368 i32.store offset=8 - local.get $1 + local.get $0 i32.const 14368 call $~lib/string/String.__eq i32.eqz @@ -29183,7 +29215,7 @@ i32.store local.get $0 i32.load offset=4 - local.set $3 + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -29195,8 +29227,6 @@ i32.store i32.const 0 local.set $0 - i32.const 0 - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -29208,11 +29238,11 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$22 + block $__inlined_func$~lib/util/string/joinIntegerArray$15 local.get $2 i32.const 1 i32.sub - local.tee $7 + local.tee $4 i32.const 0 i32.lt_s if @@ -29221,18 +29251,18 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + local.set $2 + br $__inlined_func$~lib/util/string/joinIntegerArray$15 end - block $folding-inner07 - local.get $7 + block $folding-inner09 + local.get $4 i32.eqz if block $__inlined_func$~lib/util/number/itoa64$2 (result i32) - local.get $3 + local.get $1 i64.load i64.extend32_s - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -29244,7 +29274,7 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - local.get $4 + local.get $5 i64.eqz if global.get $~lib/memory/__stack_pointer @@ -29255,65 +29285,65 @@ br $__inlined_func$~lib/util/number/itoa64$2 end i64.const 0 - local.get $4 + local.get $5 i64.sub - local.get $4 - local.get $4 + local.get $5 + local.get $5 i64.const 63 i64.shr_u i32.wrap_i64 i32.const 1 i32.shl - local.tee $1 + local.tee $0 select - local.tee $4 + local.tee $5 i64.const 4294967295 i64.le_u if global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i32.wrap_i64 - local.tee $2 + local.tee $1 i32.const 100000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 100 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 10 i32.ge_u i32.const 1 i32.add else - local.get $2 + local.get $1 i32.const 10000 i32.ge_u i32.const 3 i32.add - local.get $2 + local.get $1 i32.const 1000 i32.ge_u i32.add end else - local.get $2 + local.get $1 i32.const 10000000 i32.lt_u if (result i32) - local.get $2 + local.get $1 i32.const 1000000 i32.ge_u i32.const 6 i32.add else - local.get $2 + local.get $1 i32.const 1000000000 i32.ge_u i32.const 8 i32.add - local.get $2 + local.get $1 i32.const 100000000 i32.ge_u i32.add @@ -29322,89 +29352,89 @@ local.tee $3 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store local.get $0 - local.get $1 - i32.add local.get $2 + i32.add + local.get $1 local.get $3 call $~lib/util/number/utoa32_dec_lut else global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $5 i64.const 1000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 1000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 100000000000 i64.ge_u i32.const 10 i32.add - local.get $4 + local.get $5 i64.const 10000000000 i64.ge_u i32.add else - local.get $4 + local.get $5 i64.const 100000000000000 i64.ge_u i32.const 13 i32.add - local.get $4 + local.get $5 i64.const 10000000000000 i64.ge_u i32.add end else - local.get $4 + local.get $5 i64.const 100000000000000000 i64.lt_u if (result i32) - local.get $4 + local.get $5 i64.const 10000000000000000 i64.ge_u i32.const 16 i32.add else - local.get $4 + local.get $5 i64.const -8446744073709551616 i64.ge_u i32.const 18 i32.add - local.get $4 + local.get $5 i64.const 1000000000000000000 i64.ge_u i32.add end end - local.tee $2 + local.tee $1 i32.const 1 i32.shl - local.get $1 + local.get $0 i32.add i32.const 2 call $~lib/rt/itcms/__new - local.tee $0 + local.tee $2 i32.store local.get $0 - local.get $1 - i32.add - local.get $4 local.get $2 + i32.add + local.get $5 + local.get $1 call $~lib/util/number/utoa64_dec_lut end - local.get $1 + local.get $0 if - local.get $0 + local.get $2 i32.const 45 i32.store16 end @@ -29412,10 +29442,10 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 + local.get $2 end - local.set $1 - br $folding-inner07 + local.set $2 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 11856 @@ -29428,7 +29458,7 @@ local.tee $8 i32.const 21 i32.add - local.get $7 + local.get $4 i32.mul i32.const 21 i32.add @@ -29440,8 +29470,8 @@ local.tee $2 i32.store offset=4 loop $for-loop|010 - local.get $1 - local.get $7 + local.get $3 + local.get $4 i32.lt_s if local.get $2 @@ -29449,8 +29479,8 @@ i32.const 1 i32.shl i32.add - local.get $3 local.get $1 + local.get $3 i32.const 3 i32.shl i32.add @@ -29476,20 +29506,21 @@ i32.add local.set $0 end - local.get $1 + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 br $for-loop|010 end end + local.get $9 local.get $2 local.get $0 i32.const 1 i32.shl i32.add - local.get $3 - local.get $7 + local.get $1 + local.get $4 i32.const 3 i32.shl i32.add @@ -29498,8 +29529,7 @@ local.get $0 i32.add local.tee $0 - local.get $9 - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer local.get $2 @@ -29507,16 +29537,14 @@ local.get $2 local.get $0 call $~lib/string/String#substring - local.set $1 - br $folding-inner07 + local.set $2 + br $folding-inner09 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 - local.set $1 - br $__inlined_func$~lib/util/string/joinIntegerArray$22 + br $__inlined_func$~lib/util/string/joinIntegerArray$15 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -29532,12 +29560,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 14704 i32.store offset=8 - local.get $1 + local.get $2 i32.const 14704 call $~lib/string/String.__eq i32.eqz @@ -29676,18 +29704,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29700,8 +29728,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29713,14 +29741,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -29734,15 +29762,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$23 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$16 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -29753,15 +29781,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 + local.set $4 loop $for-loop|011 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -29771,7 +29799,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.set $9 @@ -29785,64 +29813,64 @@ local.get $8 i32.store offset=12 local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 + local.set $0 br $for-loop|011 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $1 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -29859,12 +29887,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 15168 i32.store offset=8 - local.get $0 + local.get $2 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -29941,18 +29969,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -29965,8 +29993,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -29978,14 +30006,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -29999,15 +30027,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$24 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$17 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -30018,15 +30046,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|012 + local.set $4 + loop $for-loop|016 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -30036,7 +30064,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.set $9 @@ -30050,64 +30078,64 @@ local.get $8 i32.store offset=12 local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|012 + local.set $0 + br $for-loop|016 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $1 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30124,12 +30152,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 15168 i32.store offset=8 - local.get $0 + local.get $2 i32.const 15168 call $~lib/string/String.__eq i32.eqz @@ -30210,18 +30238,18 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $0 + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store i32.const 0 - local.set $3 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.sub @@ -30234,8 +30262,8 @@ i32.const 0 i32.const 20 memory.fill - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 - local.get $0 + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 + local.get $1 i32.const 1 i32.sub local.tee $1 @@ -30247,14 +30275,14 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 11568 - local.set $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + local.set $2 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 end local.get $1 i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 i32.load local.tee $0 i32.store @@ -30268,15 +30296,15 @@ else i32.const 11568 end - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$25 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array<~lib/array/Array>>$18 end i32.const 11568 - local.set $0 + local.set $2 global.get $~lib/memory/__stack_pointer i32.const 11568 i32.store offset=8 @@ -30287,15 +30315,15 @@ i32.load i32.const 1 i32.shr_u - local.set $7 - loop $for-loop|013 + local.set $4 + loop $for-loop|017 + local.get $0 local.get $1 - local.get $3 - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 local.get $3 + local.get $0 i32.const 2 i32.shl i32.add @@ -30305,7 +30333,7 @@ local.get $8 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.set $9 @@ -30319,64 +30347,64 @@ local.get $8 i32.store offset=12 local.get $9 - local.get $0 + local.get $2 local.get $8 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $7 + local.get $4 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.const 11856 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end - local.get $3 + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|013 + local.set $0 + br $for-loop|017 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $3 local.get $1 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $0 i32.store - local.get $1 + local.get $0 if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=16 - local.get $1 + local.get $0 call $~lib/array/Array<~lib/array/Array>#toString - local.set $1 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=12 + local.get $1 local.get $2 local.get $0 - local.get $1 call $~lib/string/String.__concat - local.tee $0 + local.tee $2 i32.store offset=8 end global.get $~lib/memory/__stack_pointer @@ -30393,12 +30421,12 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer i32.const 13568 i32.store offset=8 - local.get $0 + local.get $2 i32.const 13568 call $~lib/string/String.__eq i32.eqz @@ -30461,12 +30489,12 @@ global.get $~lib/memory/__stack_pointer local.get $1 call $~lib/array/Array<~lib/array/Array>#flat - local.tee $0 + local.tee $1 i32.store offset=408 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length i32.const 10 i32.ne @@ -30479,19 +30507,19 @@ unreachable end i32.const 0 - local.set $1 + local.set $0 loop $for-loop|7 - local.get $1 + local.get $0 i32.const 10 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 + local.get $0 call $~lib/array/Array#__get - local.get $1 + local.get $0 i32.ne if i32.const 0 @@ -30501,10 +30529,10 @@ call $~lib/builtins/abort unreachable end - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 + local.set $0 br $for-loop|7 end end @@ -30554,7 +30582,7 @@ local.get $1 i32.store offset=416 global.get $~lib/memory/__stack_pointer - local.set $7 + local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30577,145 +30605,145 @@ i32.store local.get $1 i32.load offset=4 - local.set $8 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store local.get $1 i32.load offset=12 - local.set $9 - i32.const 0 - local.set $2 + local.set $8 i32.const 0 local.set $1 - loop $for-loop|056 - local.get $1 - local.get $9 + i32.const 0 + local.set $0 + loop $for-loop|023 + local.get $0 + local.get $8 i32.lt_s if - local.get $8 - local.get $1 + local.get $3 + local.get $0 i32.const 2 i32.shl i32.add i32.load - local.tee $0 + local.tee $4 if (result i32) - local.get $0 + local.get $4 i32.load offset=12 else i32.const 0 end - local.get $2 - i32.add - local.set $2 local.get $1 - i32.const 1 i32.add local.set $1 - br $for-loop|056 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|023 end end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.const 2 i32.shl local.tee $0 i32.const 1 call $~lib/rt/itcms/__new - local.tee $10 + local.tee $9 i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 34 call $~lib/rt/itcms/__new - local.tee $11 + local.tee $10 i32.store offset=8 - local.get $11 - local.get $2 + local.get $10 + local.get $1 i32.store offset=12 - local.get $11 + local.get $10 local.get $0 i32.store offset=8 - local.get $11 local.get $10 + local.get $9 i32.store offset=4 - local.get $11 local.get $10 + local.get $9 i32.store - local.get $11 local.get $10 + local.get $9 i32.const 0 call $~lib/rt/itcms/__link i32.const 0 local.set $0 i32.const 0 - local.set $3 - loop $for-loop|16 - local.get $3 - local.get $9 + local.set $4 + loop $for-loop|124 + local.get $4 + local.get $8 i32.lt_s if - local.get $8 local.get $3 + local.get $4 i32.const 2 i32.shl i32.add i32.load - local.tee $1 + local.tee $11 if local.get $0 - local.get $10 + local.get $9 i32.add - local.get $1 + local.get $11 i32.load offset=4 - local.get $1 + local.get $11 i32.load offset=12 i32.const 2 i32.shl - local.tee $1 + local.tee $11 memory.copy local.get $0 - local.get $1 + local.get $11 i32.add local.set $0 end - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|16 + local.set $4 + br $for-loop|124 end end i32.const 0 - local.set $1 - loop $for-loop|27 + local.set $0 + loop $for-loop|225 + local.get $0 local.get $1 - local.get $2 i32.lt_s if - local.get $10 - local.get $10 - local.get $1 + local.get $9 + local.get $9 + local.get $0 i32.const 2 i32.shl i32.add i32.load i32.const 1 call $~lib/rt/itcms/__link - local.get $1 + local.get $0 i32.const 1 i32.add - local.set $1 - br $for-loop|27 + local.set $0 + br $for-loop|225 end end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $7 - local.get $11 + local.get $2 + local.get $10 i32.store offset=420 global.get $~lib/memory/__stack_pointer i32.const 8 @@ -30723,12 +30751,12 @@ i32.const 34 i32.const 15792 call $~lib/rt/__newArray - local.tee $0 + local.tee $1 i32.store offset=424 global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store - local.get $11 + local.get $10 call $~lib/array/Array#get:length i32.const 8 i32.ne @@ -30741,37 +30769,37 @@ unreachable end i32.const 0 - local.set $2 + local.set $0 loop $for-loop|8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 + local.get $1 call $~lib/array/Array#get:length - local.get $2 + local.get $0 i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $11 + local.get $10 i32.store offset=48 - local.get $11 - local.get $2 + local.get $10 + local.get $0 call $~lib/array/Array#__get - local.set $1 + local.set $2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=48 + local.get $1 local.get $0 - local.get $2 call $~lib/array/Array#__get local.set $3 global.get $~lib/memory/__stack_pointer local.get $3 i32.store offset=8 - local.get $1 + local.get $2 local.get $3 call $~lib/string/String.__eq i32.eqz @@ -30783,10 +30811,10 @@ call $~lib/builtins/abort unreachable end - local.get $2 + local.get $0 i32.const 1 i32.add - local.set $2 + local.set $0 br $for-loop|8 end end @@ -30898,21 +30926,21 @@ i32.const 29 i32.const 0 call $~lib/rt/__newArray - local.tee $7 + local.tee $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store - local.get $7 + local.get $3 i32.load offset=4 local.set $8 i32.const 0 - local.set $3 - loop $for-loop|067 + local.set $4 + loop $for-loop|026 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 + local.get $4 local.get $2 local.get $1 i32.load offset=12 @@ -30927,7 +30955,7 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $3 + local.get $4 i32.const 2 i32.shl local.tee $9 @@ -30944,7 +30972,7 @@ global.set $~argumentsLength global.get $~lib/memory/__stack_pointer local.get $10 - local.get $3 + local.get $4 local.get $1 i32.const 15984 i32.load @@ -30956,15 +30984,15 @@ i32.add local.get $10 i32.store - local.get $7 + local.get $3 local.get $10 i32.const 1 call $~lib/rt/itcms/__link - local.get $3 + local.get $4 i32.const 1 i32.add - local.set $3 - br $for-loop|067 + local.set $4 + br $for-loop|026 end end global.get $~lib/memory/__stack_pointer @@ -30972,10 +31000,10 @@ i32.add global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $3 i32.store local.get $0 - local.get $7 + local.get $3 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 i32.store offset=444 @@ -31070,12 +31098,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|013 + loop $while-continue|028 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|013 + br $while-continue|028 end end end diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 79b69d7b74..51a2afb1a2 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -100,35 +100,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -354,20 +356,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -581,25 +585,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -617,26 +623,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -961,25 +969,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -988,35 +998,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1106,6 +1118,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1174,13 +1187,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1249,13 +1264,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1263,19 +1280,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1283,25 +1302,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1470,37 +1491,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1519,29 +1542,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2641,14 +2666,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2694,6 +2721,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 79a69c4efd..230613dbb0 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1866,621 +1866,624 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 34552 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 8 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 + i32.const 24 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 34552 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer i32.const 4 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 8 - i32.ne - if + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 + i32.store + global.get $~lib/memory/__stack_pointer i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -1 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.ne - if + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 0 - i32.const 1568 - i32.const 17 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.const 3 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -3 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -4 - i32.const 42 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 42 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $0 - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 1632 - i64.load align=1 - i64.store align=1 - local.get $0 - local.get $2 - i32.store - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $0 - i32.store offset=16 - block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 42 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.set $0 + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 1632 + i64.load align=1 + i64.store align=1 + local.get $0 + local.get $2 + i32.store + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + local.get $0 + i32.const 2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=16 + block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.get $1 - i32.lt_u - local.get $1 - i32.const 1073741820 - i32.gt_u - i32.or - if - i32.const 1056 - i32.const 1664 - i32.const 25 - i32.const 7 - call $~lib/builtins/abort - unreachable + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.get $1 + i32.lt_u + local.get $1 + i32.const 1073741820 + i32.gt_u + i32.or + if + i32.const 1056 + i32.const 1664 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 + br $folding-inner1 end - br $folding-inner1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 34552 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 34552 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|1 end end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34576 i32.const 34624 diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index d2e17e744a..c10117debf 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -107,35 +107,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -361,20 +363,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -588,25 +592,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -624,26 +630,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -968,25 +976,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -995,35 +1005,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1113,6 +1125,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1181,13 +1194,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1256,13 +1271,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1270,19 +1287,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1290,25 +1309,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1477,37 +1498,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1526,29 +1549,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2529,14 +2554,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2582,6 +2609,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index 96d4a1fb00..da2a59de2a 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1605,20 +1605,23 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + block + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid + end + return end return end return end - return + unreachable end unreachable end @@ -3058,2248 +3061,2251 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 34540 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 34540 i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if + block $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 3 + i32.const 4 call $~lib/rt/itcms/__new local.tee $0 i32.store + global.get $~lib/memory/__stack_pointer + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 3 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + br $folding-inner1 + end + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 246 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 224 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 88 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.const 159 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.const 130 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 5 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 6 + i32.const 67 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7 + i32.const 95 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.set $0 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $0 + local.get $2 + local.get $3 + local.get $1 + i32.load offset=8 + call $~lib/dataview/DataView#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -4.592586247781397e-20 + f32.ne + if i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -2.3413961970849473e-37 + f32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + i32.const 1696 i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 + i32.const 3 + call $~lib/builtins/abort + unreachable end - br $folding-inner1 - end - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 246 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 224 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 88 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 159 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 130 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 6 - i32.const 67 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7 - i32.const 95 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - local.get $3 - local.get $1 - i32.load offset=8 - call $~lib/dataview/DataView#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const -4.592586247781397e-20 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const -2.3413961970849473e-37 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 77105877018631129268224 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 77105877018631129268224 - f32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 229.51023864746094 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 14079802746555334656 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 229.51023864746094 - f32.ne - if i32.const 0 - i32.const 1696 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 14079802746555334656 - f32.ne - if + call $~lib/dataview/DataView#getFloat32 + f32.const -2275140518817895515269171e9 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 i32.const 0 - i32.const 1696 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -2275140518817895515269171e9 - f32.ne - if + call $~lib/dataview/DataView#getFloat32 + f32.const -62437351080004157440 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 0 - i32.const 1696 - i32.const 21 + call $~lib/dataview/DataView#getFloat32 + f32.const 1403059112509440 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -62437351080004157440 - f32.ne - if i32.const 0 - i32.const 1696 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const 1403059112509440 - f32.ne - if + call $~lib/dataview/DataView#getFloat32 + f32.const -5.522466503261712e-20 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.const 1696 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -5.522466503261712e-20 - f32.ne - if + call $~lib/dataview/DataView#getFloat32 + f32.const -1.6843597451835358e-37 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const 7936550095674706383278551e126 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -1.6843597451835358e-37 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getFloat64 - f64.const 7936550095674706383278551e126 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getFloat64 - f64.const -411777475818852546741639e241 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 28 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getInt8 - i32.const -10 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 30 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt8 - i32.const -32 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/dataview/DataView#getInt8 - i32.const 88 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/dataview/DataView#getInt8 - i32.const -97 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - call $~lib/dataview/DataView#getInt8 - i32.const -126 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - call $~lib/dataview/DataView#getInt8 - i32.const 101 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - call $~lib/dataview/DataView#getInt8 - i32.const 67 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 7 - call $~lib/dataview/DataView#getInt8 - i32.const 95 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 57590 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 22752 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 40 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 40792 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 41 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 33439 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 25986 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 17253 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 24387 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 63200 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 57432 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 22687 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 40834 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 50 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 33381 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 51 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 25923 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 17247 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const -1621565194 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const -2103486240 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1703059288 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1130726047 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1598252418 - i32.ne - if + call $~lib/dataview/DataView#getFloat64 + f64.const -411777475818852546741639e241 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 59 + call $~lib/dataview/DataView#getInt8 + i32.const -10 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt8 + i32.const -32 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/dataview/DataView#getInt8 + i32.const 88 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -153069409 - i32.ne - if + call $~lib/dataview/DataView#getInt8 + i32.const -97 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + call $~lib/dataview/DataView#getInt8 + i32.const -126 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + call $~lib/dataview/DataView#getInt8 + i32.const 101 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + call $~lib/dataview/DataView#getInt8 + i32.const 67 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 7 + call $~lib/dataview/DataView#getInt8 + i32.const 95 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 61 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 57590 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 22752 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 40792 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -531062910 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 33439 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 25986 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 17253 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 24387 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const 1486848613 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -1618844349 - i32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 63200 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 i32.const 0 - i32.const 1696 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -2107292833 - i32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 57432 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 48 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 0 - i32.const 1696 - i32.const 65 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 22687 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt64 - i64.const 6864441868736323830 - i64.ne - if i32.const 0 - i32.const 1696 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getInt64 - i64.const -657428103485373601 - i64.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 40834 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.const 1696 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getUint8 - i32.const 246 - i32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 33381 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 i32.const 0 - i32.const 1696 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint8 - i32.const 224 - i32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 25923 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 i32.const 0 - i32.const 1696 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/dataview/DataView#getUint8 - i32.const 88 - i32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 17247 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 72 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -1621565194 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -2103486240 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1703059288 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - call $~lib/dataview/DataView#getUint8 - i32.const 159 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1130726047 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1598252418 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - call $~lib/dataview/DataView#getUint8 - i32.const 130 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - call $~lib/dataview/DataView#getUint8 - i32.const 101 - i32.ne - if + call $~lib/dataview/DataView#getInt32 + i32.const -153069409 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 i32.const 0 - i32.const 1696 - i32.const 75 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - call $~lib/dataview/DataView#getUint8 - i32.const 67 - i32.ne - if + call $~lib/dataview/DataView#getInt32 + i32.const -531062910 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 62 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 0 - i32.const 1696 - i32.const 76 + call $~lib/dataview/DataView#getInt32 + i32.const 1486848613 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 7 - call $~lib/dataview/DataView#getUint8 - i32.const 95 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 57590 - i32.ne - if + call $~lib/dataview/DataView#getInt32 + i32.const -1618844349 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.const 1696 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 22752 - i32.ne - if + call $~lib/dataview/DataView#getInt32 + i32.const -2107292833 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const 6864441868736323830 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 40792 - i32.ne - if + call $~lib/dataview/DataView#getInt64 + i64.const -657428103485373601 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 81 + call $~lib/dataview/DataView#getUint8 + i32.const 246 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint8 + i32.const 224 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/dataview/DataView#getUint8 + i32.const 88 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 33439 - i32.ne - if + call $~lib/dataview/DataView#getUint8 + i32.const 159 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + call $~lib/dataview/DataView#getUint8 + i32.const 130 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + call $~lib/dataview/DataView#getUint8 + i32.const 101 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 75 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + call $~lib/dataview/DataView#getUint8 + i32.const 67 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 76 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 7 + call $~lib/dataview/DataView#getUint8 + i32.const 95 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 77 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 82 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57590 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22752 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40792 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 25986 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33439 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25986 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17253 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 24387 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 17253 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 24387 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 63200 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 i32.const 0 - i32.const 1696 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 63200 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57432 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 88 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 0 - i32.const 1696 - i32.const 87 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22687 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 57432 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 22687 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40834 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.const 1696 - i32.const 89 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 40834 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33381 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 i32.const 0 - i32.const 1696 - i32.const 90 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 33381 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25923 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 92 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 i32.const 0 - i32.const 1696 - i32.const 91 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 25923 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17247 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 92 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -1621565194 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -2103486240 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1703059288 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 17247 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1130726047 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1598252418 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 93 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -1621565194 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 95 + call $~lib/dataview/DataView#getUint32 + i32.const -153069409 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -531062910 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const 1486848613 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -2103486240 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1703059288 - i32.ne - if + call $~lib/dataview/DataView#getUint32 + i32.const -1618844349 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 i32.const 0 - i32.const 1696 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1130726047 - i32.ne - if + call $~lib/dataview/DataView#getUint32 + i32.const -2107292833 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 6864441868736323830 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1598252418 - i32.ne - if + call $~lib/dataview/DataView#getUint64 + i64.const -657428103485373601 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1.5976661625240943e-18 + i32.const 1 + call $~lib/dataview/DataView#setFloat32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -153069409 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 1.5976661625240943e-18 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1976281973381696323584 i32.const 0 - i32.const 1696 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -531062910 - i32.ne - if + call $~lib/dataview/DataView#setFloat32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 102 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const 1486848613 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -1618844349 - i32.ne - if + call $~lib/dataview/DataView#getFloat32 + f32.const 1976281973381696323584 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const -1094252199637739024055454e124 + i32.const 1 + call $~lib/dataview/DataView#setFloat64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const -1094252199637739024055454e124 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 6.022586634778589e-103 i32.const 0 - i32.const 1696 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -2107292833 - i32.ne - if + call $~lib/dataview/DataView#setFloat64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getFloat64 + f64.const 6.022586634778589e-103 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1632 + i32.const 109 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 108 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getInt8 + i32.const 108 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -13360 + i32.const 1 + call $~lib/dataview/DataView#setInt16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint64 - i64.const 6864441868736323830 - i64.ne - if + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 52176 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 14689 i32.const 0 - i32.const 1696 - i32.const 107 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getUint64 - i64.const -657428103485373601 - i64.ne - if + call $~lib/dataview/DataView#setInt16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 108 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 1.5976661625240943e-18 - i32.const 1 - call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 1.5976661625240943e-18 - f32.ne - if i32.const 0 - i32.const 1696 - i32.const 111 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 1976281973381696323584 - i32.const 0 - call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const 1976281973381696323584 - f32.ne - if + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 14689 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1204680201 + i32.const 1 + call $~lib/dataview/DataView#setInt32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const -1094252199637739024055454e124 - i32.const 1 - call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getFloat64 - f64.const -1094252199637739024055454e124 - f64.ne - if + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1204680201 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 132 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 660673230 i32.const 0 - i32.const 1696 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 6.022586634778589e-103 - i32.const 0 - call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getFloat64 - f64.const 6.022586634778589e-103 - f64.ne - if + call $~lib/dataview/DataView#setInt32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.eqz - if - i32.const 1360 - i32.const 1632 - i32.const 109 - i32.const 50 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 108 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getInt8 - i32.const 108 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -13360 - i32.const 1 - call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 52176 - i32.ne - if + call $~lib/dataview/DataView#getInt32 + i32.const 660673230 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const -3290739641816099749 + i32.const 1 + call $~lib/dataview/DataView#setInt64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const -3290739641816099749 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 8178932412950708047 i32.const 0 - i32.const 1696 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 14689 - i32.const 0 - call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 14689 - i32.ne - if + call $~lib/dataview/DataView#setInt64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1204680201 - i32.const 1 - call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1204680201 - i32.ne - if + call $~lib/dataview/DataView#getInt64 + i64.const 8178932412950708047 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1696 - i32.const 132 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 660673230 - i32.const 0 - call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const 660673230 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1632 + i32.const 128 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 238 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const -3290739641816099749 - i32.const 1 - call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt64 - i64.const -3290739641816099749 - i64.ne - if + call $~lib/dataview/DataView#getUint8 + i32.const 238 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 144 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 58856 + i32.const 1 + call $~lib/dataview/DataView#setUint16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 138 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 8178932412950708047 - i32.const 0 - call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getInt64 - i64.const 8178932412950708047 - i64.ne - if + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 58856 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 60400 i32.const 0 - i32.const 1696 - i32.const 141 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.eqz - if - i32.const 1360 - i32.const 1632 - i32.const 128 - i32.const 50 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 238 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getUint8 - i32.const 238 - i32.ne - if + call $~lib/dataview/DataView#setUint16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 144 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 58856 - i32.const 1 - call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 58856 - i32.ne - if i32.const 0 - i32.const 1696 - i32.const 147 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 60400 - i32.const 0 - call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 60400 - i32.ne - if + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 60400 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -846805744 + i32.const 1 + call $~lib/dataview/DataView#setUint32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 150 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -846805744 - i32.const 1 - call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -846805744 - i32.ne - if + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -846805744 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1510791631 i32.const 0 - i32.const 1696 - i32.const 153 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1510791631 - i32.const 0 - call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -1510791631 - i32.ne - if + call $~lib/dataview/DataView#setUint32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 156 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 2334704782995986958 - i32.const 1 - call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint64 - i64.const 2334704782995986958 - i64.ne - if i32.const 0 - i32.const 1696 - i32.const 159 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const -7123186897289856329 - i32.const 0 - call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/dataview/DataView#getUint64 - i64.const -7123186897289856329 - i64.ne - if + call $~lib/dataview/DataView#getUint32 + i32.const -1510791631 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 156 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 2334704782995986958 + i32.const 1 + call $~lib/dataview/DataView#setUint64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 2334704782995986958 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const -7123186897289856329 i32.const 0 - i32.const 1696 - i32.const 162 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - local.get $2 - call $~lib/dataview/DataView#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if + call $~lib/dataview/DataView#setUint64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - i32.const 8 - i32.ne - if + call $~lib/dataview/DataView#getUint64 + i64.const -7123186897289856329 + i64.ne + if + i32.const 0 + i32.const 1696 + i32.const 162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1696 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 34540 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/dataview/DataView#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1696 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 34540 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|1 end end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34560 i32.const 34608 diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index c06e79635e..ada08405fc 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -492,35 +492,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -746,20 +748,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -973,25 +977,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -1009,26 +1015,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1353,25 +1361,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1380,35 +1390,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1498,6 +1510,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1566,13 +1579,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1641,13 +1656,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1655,19 +1672,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1675,25 +1694,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1862,37 +1883,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1911,29 +1934,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2884,59 +2909,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 860 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 860 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 860 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 860 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -3013,35 +3040,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1280 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -3095,40 +3124,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -3255,22 +3288,24 @@ local.get $count i32.mul local.set $total - loop $while-continue|0 - local.get $index - local.get $total - i32.lt_u - if - local.get $dst - local.get $index - i32.add - local.get $src - local.get $srcLength - memory.copy + block $while-break|0 + loop $while-continue|0 local.get $index - local.get $srcLength - i32.add - local.set $index - br $while-continue|0 + local.get $total + i32.lt_u + if + local.get $dst + local.get $index + i32.add + local.get $src + local.get $srcLength + memory.copy + local.get $index + local.get $srcLength + i32.add + local.set $index + br $while-continue|0 + end end end ) @@ -3433,38 +3468,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -3692,6 +3729,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -3708,25 +3746,27 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end ) @@ -5127,6 +5167,12 @@ global.set $~lib/memory/__stack_pointer local.get $2 return + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/date/Date#toISOString (param $this i32) (result i32) (local $yr i32) @@ -6624,21 +6670,23 @@ local.get $ptr i32.load16_u local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end end end i32.const 1 @@ -7416,102 +7464,104 @@ local.set $start i32.const 0 local.set $i|16 - loop $while-continue|1 - local.get $this - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $separator - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor - if - local.get $end + block $while-break|1 + loop $while-continue|1 + local.get $this + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $separator + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 local.get $start - i32.sub - local.set $len - local.get $len - i32.const 0 - i32.gt_s + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=28 - local.get $out - local.get $this + local.get $end local.get $start - i32.const 1 - i32.shl - i32.add + i32.sub + local.set $len local.get $len + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $len + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=28 + local.get $out + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + i32.const 2432 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $i|16 i32.const 1 - i32.shl - memory.copy - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $out - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - i32.const 2432 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $i|16 - i32.const 1 - i32.add - local.tee $i|16 - local.get $limit - i32.eq - if - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - i32.const 36 i32.add - global.set $~lib/memory/__stack_pointer - local.get $21 - return + local.tee $i|16 + local.get $limit + i32.eq + if + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + local.get $end + local.get $sepLen + i32.add + local.set $start + br $while-continue|1 end - local.get $end - local.get $sepLen - i32.add - local.set $start - br $while-continue|1 end end local.get $start @@ -13718,25 +13768,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -13861,22 +13913,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -13901,23 +13955,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index 0a04055d0c..af731f6d4f 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -296,88 +296,90 @@ i32.const 16 i32.sub local.set $end - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.0 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.0 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.1 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.1 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.2 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.2 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.3 (result i32) - local.get $s4 - local.set $h|16 + block $while-break|0 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 + end + local.set $s3 + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 + end + local.set $s4 local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul + i32.const 16 i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.3 + local.set $pos + br $while-continue|0 end - local.set $s4 - local.get $pos - i32.const 16 - i32.add - local.set $pos - br $while-continue|0 end end local.get $h @@ -412,58 +414,62 @@ i32.const 4 i32.sub local.set $end|18 - loop $while-continue|1 - local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h + block $while-break|1 + loop $while-continue|1 local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 + local.get $end|18 + i32.le_u + if + local.get $h + local.get $pos + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 + end end end local.get $key|1 local.get $len i32.add local.set $end|18 - loop $while-continue|2 - local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h + block $while-break|2 + loop $while-continue|2 local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h - local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 + local.get $end|18 + i32.lt_u + if + local.get $h + local.get $pos + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 + end end end local.get $h @@ -585,88 +591,90 @@ i32.const 16 i32.sub local.set $end - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.4 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.4 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.5 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.5 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.6 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.6 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.7 (result i32) - local.get $s4 - local.set $h|16 + block $while-break|0 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.4 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.4 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.5 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.5 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.6 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.6 + end + local.set $s3 + block $~lib/util/hash/mix|inlined.7 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.7 + end + local.set $s4 local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul + i32.const 16 i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.7 + local.set $pos + br $while-continue|0 end - local.set $s4 - local.get $pos - i32.const 16 - i32.add - local.set $pos - br $while-continue|0 end end local.get $h @@ -701,58 +709,62 @@ i32.const 4 i32.sub local.set $end|18 - loop $while-continue|1 - local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h + block $while-break|1 + loop $while-continue|1 local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 + local.get $end|18 + i32.le_u + if + local.get $h + local.get $pos + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 + end end end local.get $key|1 local.get $len i32.add local.set $end|18 - loop $while-continue|2 - local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h + block $while-break|2 + loop $while-continue|2 local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h - local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 + local.get $end|18 + i32.lt_u + if + local.get $h + local.get $pos + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 + end end end local.get $h diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 0bea8bdde5..63365dae75 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -123,35 +123,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -377,20 +379,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -604,25 +608,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -640,26 +646,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -984,25 +992,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1011,35 +1021,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1129,6 +1141,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1197,13 +1210,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1272,13 +1287,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1286,19 +1303,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1306,25 +1325,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1493,37 +1514,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1542,29 +1565,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -5169,14 +5194,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -5255,6 +5282,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 @@ -5878,43 +5906,45 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -6035,65 +6065,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -7587,43 +7619,45 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -7714,65 +7748,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -8071,41 +8107,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -8196,65 +8234,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -9565,45 +9605,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 255 + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 255 + i32.and + local.get $key + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -9724,65 +9766,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -10768,45 +10812,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 255 + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 255 + i32.and + local.get $key + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -10897,65 +10943,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -12241,43 +12289,45 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -12398,65 +12448,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -13442,43 +13494,45 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -13569,65 +13623,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -14913,45 +14969,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 65535 + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 65535 + i32.and + local.get $key + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -15072,65 +15130,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -16116,45 +16176,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 65535 + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.const 65535 + i32.and + local.get $key + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -16245,65 +16307,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -18752,41 +18816,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -18907,65 +18973,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -19951,41 +20019,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -20076,65 +20146,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + local.get $oldEnd + i32.ne + if + local.get $oldPtr + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -21420,41 +21492,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -21575,65 +21649,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -22620,41 +22696,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -22745,65 +22823,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -24097,41 +24177,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -24252,65 +24334,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -25297,41 +25381,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -25422,65 +25508,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -26774,41 +26862,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -26929,65 +27019,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -27974,41 +28066,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -28099,65 +28193,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -29451,41 +29547,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -29606,65 +29704,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -30651,41 +30751,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -30776,65 +30878,67 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index 29d20dcd9f..d24240e624 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -2016,7 +2016,6 @@ local.get $6 local.get $1 local.get $8 - i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -3156,431 +3155,433 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1378" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1378" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store8 offset=1 - else + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 - local.set $3 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $4 local.get $3 local.get $0 - i32.load offset=12 - i32.eq + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1378" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1378" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if + local.get $3 + local.get $2 + i32.store8 offset=1 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 + i32.load offset=16 local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 - else + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=4 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 + i32.add + local.tee $3 + i32.const 2 i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $5 - local.get $10 - i32.ne - if + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + local.get $10 + i32.ne if - local.get $3 - local.get $5 - i32.load8_s - local.tee $11 - i32.store8 - local.get $3 local.get $5 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor + i32.load offset=4 + i32.const 1 i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_s + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_s offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 i32.const 8 i32.add - local.set $3 + local.set $5 + br $while-continue|00 end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 local.get $4 - i32.store offset=8 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 + i32.const 12 i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -4285,901 +4286,904 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - call $"~lib/map/Map#has" - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.const 20 - i32.add - i32.ne + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 local.get $0 - i32.const 50 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 46 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $"~lib/map/Map#has" + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -5730,431 +5734,434 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1383" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1383" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store8 offset=1 - else + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 - local.set $3 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $4 local.get $3 local.get $0 - i32.load offset=12 - i32.eq + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1383" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1383" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if + local.get $3 + local.get $2 + i32.store8 offset=1 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 + i32.load offset=16 local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 - else + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.load offset=4 i32.const 1 - i32.and - i32.eqz + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne if - local.get $3 - local.get $5 - i32.load8_u - local.tee $11 - i32.store8 - local.get $3 local.get $5 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor + i32.load offset=4 + i32.const 1 i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_u + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 i32.const 8 i32.add - local.set $3 + local.set $5 + br $while-continue|00 end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer + i32.store offset=4 local.get $0 - i32.store offset=8 local.get $0 - local.get $9 - i32.store offset=12 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 + i32.store offset=4 local.get $0 local.get $0 i32.load offset=20 - i32.store offset=16 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -6318,901 +6325,904 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 11 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - call $"~lib/map/Map#has" - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.const 10 - i32.add - i32.ne + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 21 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $7 i32.store + local.get $2 local.get $7 - local.get $0 - local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $4 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $"~lib/map/Map#has" + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -7455,7 +7465,6 @@ local.get $6 local.get $1 local.get $8 - i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -7944,431 +7953,433 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1388" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1388" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store16 offset=2 - else + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 - local.set $3 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $4 local.get $3 local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1388" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1388" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 + i32.add + local.tee $3 + i32.const 2 i32.shl - i32.const 1 - i32.or + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_s + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 i32.const 1 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer + i32.store offset=16 local.get $3 + local.get $4 i32.const 3 i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store local.get $0 - i32.load offset=8 - local.set $5 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $5 + i32.store + local.get $3 + local.get $1 + local.get $8 local.get $0 - i32.load offset=16 - i32.const 3 + i32.load offset=4 + i32.and + i32.const 2 i32.shl i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_s - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 + local.tee $0 + i32.load i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -8531,905 +8542,908 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - i32.const 10 - i32.add - i32.ne + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.const 100 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $8 - i32.load16_s - call $~lib/array/Array#__set + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 1 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 36 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $"~lib/map/Map#has" + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $"~lib/map/Map#has" + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -9980,431 +9994,434 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1393" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1393" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end + block $folding-inner0 global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i32.store16 offset=2 - else + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 - local.set $3 + i32.load + local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store + local.get $4 local.get $3 local.get $0 - i32.load offset=12 - i32.eq + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1393" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1393" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if + local.get $3 + local.get $2 + i32.store16 offset=2 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 local.get $0 - i32.load offset=20 + i32.load offset=16 local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 + i32.store local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=4 - else + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 + local.get $3 local.get $0 - i32.load offset=4 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 + i32.add + local.tee $3 + i32.const 2 i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $5 - local.get $10 - i32.ne - if + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + local.get $10 + i32.ne if - local.get $3 local.get $5 - i32.load16_u - local.tee $11 - i32.store16 - local.get $3 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_u + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_u offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end local.get $5 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 i32.const 8 i32.add - local.set $3 + local.set $5 + br $while-continue|00 end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 local.get $0 - local.get $6 i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 local.get $4 - i32.store offset=8 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store local.get $0 - i32.load offset=20 - i32.store offset=16 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 12 i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -10568,905 +10585,908 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - call $"~lib/map/Map#has" - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.const 10 - i32.add - i32.ne + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 local.get $6 - i32.lt_s + i32.const 536870910 + i32.gt_u if - local.get $5 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $6 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|00 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store offset=4 + i32.store local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store local.get $7 - i32.load offset=4 + call $~lib/array/Array#get:length local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $"~lib/map/Map#has" - i32.eqz + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - i32.const 20 - i32.add - i32.ne + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -13498,905 +13518,908 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $0 - i32.const 10 - i32.add - i32.ne + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 100 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load - call $~lib/array/Array#__set + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 i32.add local.set $0 + br $for-loop|1 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - local.get $0 + local.get $7 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.const 20 - i32.add - i32.ne + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $"~lib/map/Map#has" + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -15957,2039 +15980,1286 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne + i64.const 100 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|1 local.get $2 - call $"~lib/map/Map#has" - i32.eqz + i64.const 100 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - i32.const 1568 - i32.const 21 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $8 - local.get $4 - i32.store - local.get $8 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $8 + local.get $4 + i32.store + local.get $8 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 local.get $7 - i32.lt_s - if - local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + local.get $7 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set - local.get $0 + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $3 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $0 - local.get $7 - i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1408" - loop $while-continue|0 - local.get $3 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" local.get $3 - i32.load offset=16 - local.tee $4 i32.const 1 - i32.and - if (result i32) + i32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1408" + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $3 - local.get $0 - i32.load offset=12 + i32.const 0 + i32.const 1568 + i32.const 46 i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - else + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $11 - local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul - i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $9 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + unreachable + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link + i64.load + i64.eq + end + if global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 i32.store offset=8 - local.get $0 + local.get $2 local.get $7 + local.get $1 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer + local.get $9 + local.get $2 + i32.store + local.get $2 i32.const 16 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + i32.const 16 i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store + local.set $8 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) (local $3 i32) + (local $4 i32) + (local $5 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18007,6 +17277,9 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 @@ -18032,82 +17305,38 @@ i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $3 i32.const 15 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $3 i32.const 13 i32.shr_u - local.get $2 + local.get $3 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $3 i32.const 16 i32.shr_u - local.get $2 + local.get $3 i32.xor + local.tee $4 call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + if + local.get $3 + local.get $2 + i32.store offset=8 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=20 + i32.load offset=16 local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 @@ -18115,40 +17344,219 @@ local.get $3 local.get $0 i32.load offset=12 - i32.const 3 - i32.mul + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.load offset=8 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + local.get $0 ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) (local $3 i32) (local $4 i32) (local $5 i32) (local $6 i32) (local $7 i32) (local $8 i32) - (local $9 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 @@ -18157,13 +17565,16 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $4 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -18171,894 +17582,1512 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 + local.get $0 i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $0 + i32.load + local.set $3 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.get $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1408" + loop $while-continue|0 + local.get $3 if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1408" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $3 end - i64.const 0 - local.set $2 - loop $for-loop|1 + local.get $3 + if + local.get $3 local.get $2 - i64.const 100 - i64.lt_u + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=12 + i32.eq if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or end + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $9 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 + global.set $~lib/memory/__stack_pointer end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub + i32.const 12 + i32.add global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $8 + local.get $0 i32.store + local.get $0 + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + local.get $0 i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select + local.get $3 + local.get $0 + i32.load offset=12 i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $8 - local.get $4 + local.get $0 i32.store - local.get $8 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 - local.get $7 + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - if - local.get $6 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_u if global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 i32.add - local.set $0 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $1 i32.store offset=4 - local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $3 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.load offset=4 - local.get $3 + i32.const 1568 + i32.const 21 i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $8 + local.get $4 + i32.store + local.get $8 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz + local.get $7 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 36 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_u + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 local.get $2 - call $"~lib/map/Map#has" - i32.eqz + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - call $"~lib/map/Map#has" + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34688 i32.const 34736 @@ -19567,356 +19596,359 @@ i32.add i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.reinterpret_f32 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#keys" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 f32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.reinterpret_f32 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u if - local.get $3 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $3 + local.get $2 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $0 + i32.store + local.get $1 + local.tee $0 i32.const 1 i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity + local.set $1 + local.get $7 + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store + local.get $0 local.get $6 - local.get $7 - i32.store offset=12 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 34688 i32.const 34736 @@ -21848,259 +21880,262 @@ i32.load offset=8 local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#keys" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 31 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + ) + (func $"~lib/map/Map#keys" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 31 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u if - local.get $3 + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 + i32.shl + i32.add + local.tee $7 i32.load offset=12 - i32.ge_u + i32.const 1 + i32.and + i32.eqz if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $0 + i32.store + local.get $1 + local.tee $0 i32.const 1 i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity + local.set $1 + local.get $7 + f64.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store + local.get $0 local.get $6 - local.get $7 - i32.store offset=12 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 34688 i32.const 34736 diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index 5589c2107b..c0d2b85695 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -9491,38 +9491,40 @@ i64.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s - if - local.get $ux - local.get $uy - i64.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s if local.get $ux local.get $uy - i64.eq + i64.ge_u if - f64.const 0 - local.get $x - f64.mul - return + local.get $ux + local.get $uy + i64.eq + if + f64.const 0 + local.get $x + f64.mul + return + end + local.get $ux + local.get $uy + i64.sub + local.set $ux end local.get $ux - local.get $uy - i64.sub + i64.const 1 + i64.shl local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -9763,38 +9765,40 @@ i32.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s - if - local.get $ux - local.get $uy - i32.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s if local.get $ux local.get $uy - i32.eq + i32.ge_u if - f32.const 0 - local.get $x - f32.mul - return + local.get $ux + local.get $uy + i32.eq + if + f32.const 0 + local.get $x + f32.mul + return + end + local.get $ux + local.get $uy + i32.sub + local.set $ux end local.get $ux - local.get $uy - i32.sub + i32.const 1 + i32.shl local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -12107,37 +12111,39 @@ local.get $x return end - loop $while-continue|1 - local.get $ex - local.get $ey - i64.gt_s - if - local.get $uxi - local.get $uy - i64.ge_u + block $while-break|1 + loop $while-continue|1 + local.get $ex + local.get $ey + i64.gt_s if local.get $uxi local.get $uy - i64.sub + i64.ge_u + if + local.get $uxi + local.get $uy + i64.sub + local.set $uxi + local.get $q + i32.const 1 + i32.add + local.set $q + end + local.get $uxi + i64.const 1 + i64.shl local.set $uxi local.get $q i32.const 1 - i32.add + i32.shl local.set $q + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|1 end - local.get $uxi - i64.const 1 - i64.shl - local.set $uxi - local.get $q - i32.const 1 - i32.shl - local.set $q - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|1 end end local.get $uxi @@ -12420,37 +12426,39 @@ local.get $x return end - loop $while-continue|1 - local.get $ex - local.get $ey - i32.gt_s - if - local.get $uxi - local.get $uy - i32.ge_u + block $while-break|1 + loop $while-continue|1 + local.get $ex + local.get $ey + i32.gt_s if local.get $uxi local.get $uy - i32.sub + i32.ge_u + if + local.get $uxi + local.get $uy + i32.sub + local.set $uxi + local.get $q + i32.const 1 + i32.add + local.set $q + end + local.get $uxi + i32.const 1 + i32.shl local.set $uxi local.get $q i32.const 1 - i32.add + i32.shl local.set $q + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|1 end - local.get $uxi - i32.const 1 - i32.shl - local.set $uxi - local.get $q - i32.const 1 - i32.shl - local.set $q - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|1 end end local.get $uxi @@ -16717,31 +16725,33 @@ end end end - loop $while-continue|1 - local.get $e - i64.const 0 - i64.ne - if + block $while-break|1 + loop $while-continue|1 local.get $e - i64.const 1 - i64.and i64.const 0 i64.ne if - local.get $out + local.get $e + i64.const 1 + i64.and + i64.const 0 + i64.ne + if + local.get $out + local.get $x + i64.mul + local.set $out + end + local.get $e + i64.const 1 + i64.shr_u + local.set $e + local.get $x local.get $x i64.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i64.const 1 - i64.shr_u - local.set $e - local.get $x - local.get $x - i64.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -16939,27 +16949,29 @@ end end end - loop $while-continue|1 - local.get $e - if + block $while-break|1 + loop $while-continue|1 local.get $e - i32.const 1 - i32.and if - local.get $out + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x local.get $x i32.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -47950,11 +47962,13 @@ br $for-loop|0 end end - call $~lib/bindings/dom/Math.random - i64.reinterpret_f64 - local.set $value - local.get $value - call $~lib/math/NativeMath.seedRandom + block $~lib/math/NativeMathf.seedRandom|inlined.0 + call $~lib/bindings/dom/Math.random + i64.reinterpret_f64 + local.set $value + local.get $value + call $~lib/math/NativeMath.seedRandom + end i32.const 0 local.set $i|8 loop $for-loop|1 diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index e83e1bff7e..502ce80f3e 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -176,38 +176,40 @@ i64.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s - if - local.get $ux - local.get $uy - i64.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s if local.get $ux local.get $uy - i64.eq + i64.ge_u if - f64.const 0 - local.get $x - f64.mul - return + local.get $ux + local.get $uy + i64.eq + if + f64.const 0 + local.get $x + f64.mul + return + end + local.get $ux + local.get $uy + i64.sub + local.set $ux end local.get $ux - local.get $uy - i64.sub + i64.const 1 + i64.shl local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -473,38 +475,40 @@ i32.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s - if - local.get $ux - local.get $uy - i32.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s if local.get $ux local.get $uy - i32.eq + i32.ge_u if - f32.const 0 - local.get $x - f32.mul - return + local.get $ux + local.get $uy + i32.eq + if + f32.const 0 + local.get $x + f32.mul + return + end + local.get $ux + local.get $uy + i32.sub + local.set $ux end local.get $ux - local.get $uy - i32.sub + i32.const 1 + i32.shl local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|0 end end local.get $ux diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 5b911b3d42..8a2204b50a 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -109,35 +109,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -363,20 +365,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -590,25 +594,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -626,26 +632,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -970,25 +978,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -997,35 +1007,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1115,6 +1127,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1183,13 +1196,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,13 +1273,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,19 +1289,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1292,25 +1311,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1479,37 +1500,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1528,29 +1551,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2313,6 +2338,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index b2cfc90f1a..d7fba004ee 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -172,38 +172,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index eb247a5394..f7e34ee73b 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -165,35 +165,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -419,20 +421,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -646,25 +650,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -682,26 +688,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1026,25 +1034,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1053,35 +1063,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1171,6 +1183,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1239,13 +1252,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1314,13 +1329,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1328,19 +1345,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1348,25 +1367,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1535,37 +1556,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1584,29 +1607,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2525,27 +2550,29 @@ end end end - loop $while-continue|1 - local.get $e - if + block $while-break|1 + loop $while-continue|1 local.get $e - i32.const 1 - i32.and if - local.get $out + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x local.get $x i32.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -2677,38 +2704,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -3166,6 +3195,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 9381398907..73694f36a7 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -413,34 +413,36 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/one - local.set $this|26 - block $std/pointer/Pointer#get:value|inlined.6 (result i32) - global.get $std/pointer/two - local.set $this|25 + block $std/pointer/Pointer#set:value|inlined.0 + global.get $std/pointer/one + local.set $this|26 + block $std/pointer/Pointer#get:value|inlined.6 (result i32) + global.get $std/pointer/two + local.set $this|25 + i32.const 1 + drop + local.get $this|25 + br $std/pointer/Pointer#get:value|inlined.6 + end + local.set $value i32.const 1 drop - local.get $this|25 - br $std/pointer/Pointer#get:value|inlined.6 - end - local.set $value - i32.const 1 - drop - i32.const 0 - drop - local.get $value - i32.const 0 - i32.eq - if - local.get $this|26 i32.const 0 - i32.const 8 - memory.fill - else - local.get $this|26 + drop local.get $value - i32.const 8 - memory.copy + i32.const 0 + i32.eq + if + local.get $this|26 + i32.const 0 + i32.const 8 + memory.fill + else + local.get $this|26 + local.get $value + i32.const 8 + memory.copy + end end block $std/pointer/Pointer#get:offset|inlined.8 (result i32) global.get $std/pointer/one @@ -513,32 +515,36 @@ br $std/pointer/Pointer#constructor|inlined.0 end global.set $std/pointer/buf - global.get $std/pointer/buf - local.set $this|34 - i32.const 0 - local.set $index - f32.const 1.100000023841858 - local.set $value|36 - local.get $this|34 - local.get $index - i32.const 4 - i32.mul - i32.add - local.get $value|36 - f32.store - global.get $std/pointer/buf - local.set $this|37 - i32.const 1 - local.set $index|38 - f32.const 1.2000000476837158 - local.set $value|39 - local.get $this|37 - local.get $index|38 - i32.const 4 - i32.mul - i32.add - local.get $value|39 - f32.store + block $std/pointer/Pointer#set|inlined.0 + global.get $std/pointer/buf + local.set $this|34 + i32.const 0 + local.set $index + f32.const 1.100000023841858 + local.set $value|36 + local.get $this|34 + local.get $index + i32.const 4 + i32.mul + i32.add + local.get $value|36 + f32.store + end + block $std/pointer/Pointer#set|inlined.1 + global.get $std/pointer/buf + local.set $this|37 + i32.const 1 + local.set $index|38 + f32.const 1.2000000476837158 + local.set $value|39 + local.get $this|37 + local.get $index|38 + i32.const 4 + i32.mul + i32.add + local.get $value|39 + f32.store + end block $std/pointer/Pointer#get|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|40 @@ -661,19 +667,21 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|48 - i32.const 2 - local.set $index|49 - f32.const 1.2999999523162842 - local.set $value|50 - local.get $this|48 - local.get $index|49 - i32.const 4 - i32.mul - i32.add - local.get $value|50 - f32.store + block $std/pointer/Pointer#set|inlined.2 + global.get $std/pointer/buf + local.set $this|48 + i32.const 2 + local.set $index|49 + f32.const 1.2999999523162842 + local.set $value|50 + local.get $this|48 + local.get $index|49 + i32.const 4 + i32.mul + i32.add + local.get $value|50 + f32.store + end block $std/pointer/Pointer#get|inlined.4 (result f32) global.get $std/pointer/buf local.set $this|51 @@ -735,15 +743,17 @@ call $~lib/builtins/abort unreachable end - global.get $std/pointer/buf - local.set $this|55 - f32.const 1.399999976158142 - local.set $value|56 - i32.const 0 - drop - local.get $this|55 - local.get $value|56 - f32.store + block $std/pointer/Pointer#set:value|inlined.0 + global.get $std/pointer/buf + local.set $this|55 + f32.const 1.399999976158142 + local.set $value|56 + i32.const 0 + drop + local.get $this|55 + local.get $value|56 + f32.store + end block $std/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|57 diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 2b9cc560d4..301f6044a4 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -118,35 +118,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -372,20 +374,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -599,25 +603,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -635,26 +641,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -979,25 +987,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1006,35 +1016,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1124,6 +1136,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1192,13 +1205,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1267,13 +1282,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1281,19 +1298,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1301,25 +1320,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1488,37 +1509,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1537,29 +1560,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -4273,14 +4298,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -4356,6 +4383,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) local.get $0 @@ -4853,43 +4881,45 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -5010,61 +5040,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -6704,45 +6736,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $~lib/set/SetEntry#get:key - i32.const 255 + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 255 + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.const 255 + i32.and + local.get $key + i32.const 255 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -6863,61 +6897,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -8430,51 +8466,53 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store - local.get $5 - call $~lib/set/Set#get:bucketsMask - i32.and - i32.const 4 - i32.mul - i32.add - i32.load - local.set $entry - loop $while-continue|0 - local.get $entry - if - local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end + local.get $5 + call $~lib/set/Set#get:bucketsMask + i32.and + i32.const 4 + i32.mul + i32.add + i32.load + local.set $entry + block $while-break|0 + loop $while-continue|0 + local.get $entry if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -8595,61 +8633,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -10170,45 +10210,47 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) + if local.get $entry - call $~lib/set/SetEntry#get:key - i32.const 65535 + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 i32.and - local.get $key - i32.const 65535 + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.const 65535 + i32.and + local.get $key + i32.const 65535 + i32.and + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -10329,61 +10371,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -11904,41 +11948,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -12059,61 +12105,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -13634,41 +13682,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -13789,61 +13839,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end + i32.add + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -15364,41 +15416,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -15519,61 +15573,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -17095,41 +17151,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -17250,61 +17308,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -18826,41 +18886,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - f32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + f32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -18981,61 +19043,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -20557,41 +20621,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - f64.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + f64.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -20712,61 +20778,63 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.3 + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 + br $~lib/set/ENTRY_SIZE|inlined.4 end i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index c9ea6759a7..0521ee3c0d 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -2093,7 +2093,6 @@ local.get $5 local.get $1 local.get $8 - i32.extend8_s i32.const -1028477379 i32.mul i32.const 374761394 @@ -2961,576 +2960,579 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 100 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 local.get $5 - i32.lt_s + i32.const 1073741820 + i32.gt_u if - local.get $4 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 + br $for-loop|00 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add + call $~lib/array/Array#get:length local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_s + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -4269,576 +4271,579 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 100 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 local.get $5 - i32.lt_s + i32.const 1073741820 + i32.gt_u if - local.get $4 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 i32.const 1 i32.add - local.set $0 + local.set $2 + br $for-loop|00 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 local.get $6 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_u + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -5167,7 +5172,6 @@ local.get $5 local.get $1 local.get $8 - i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -5760,578 +5764,581 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 100 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - local.get $4 - local.get $2 + i32.const 0 + i32.const 1568 + i32.const 18 i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 536870910 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + local.get $5 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_s + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -7072,578 +7079,581 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 100 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - local.get $4 - local.get $2 + i32.const 0 + i32.const 1568 + i32.const 18 i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 536870910 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_u + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -8559,578 +8569,581 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - call $~lib/set/Set#has + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - call $~lib/set/Set#has - i32.eqz + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - local.get $4 - local.get $2 + i32.const 0 + i32.const 1568 + i32.const 27 i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 i32.add local.set $0 + br $for-loop|3 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 50 - i32.lt_s + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -9941,578 +9954,581 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne if - local.get $4 - local.get $2 + i32.const 0 + i32.const 1568 + i32.const 10 i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 i32.const 1 i32.add local.set $0 + br $for-loop|1 end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 + end end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=16 - local.get $1 + i32.store offset=4 local.get $6 + call $~lib/array/Array#get:length local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_u + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size i32.const 50 - i32.lt_u + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - call $~lib/set/Set#has + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -11560,576 +11576,579 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $2 - call $~lib/set/Set#has + i64.const 100 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 local.get $2 - call $~lib/set/Set#has - i32.eqz + i64.const 100 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $2 - loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_s + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $8 - local.get $7 - i32.store - local.get $8 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $8 + local.get $7 + i32.store + local.get $8 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 local.get $6 - i32.lt_s - if - local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $6 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $7 - i64.load - call $~lib/array/Array#__set - local.get $0 + local.get $5 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 i32.const 1 i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|2 + local.set $3 + br $for-loop|00 + end + end global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=16 - local.get $1 + i32.store offset=4 local.get $8 + call $~lib/array/Array#get:length local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $1 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $0 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_s + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 local.get $2 - call $~lib/set/Set#has + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - call $~lib/set/Set#has + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -12993,576 +13012,579 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 local.get $2 - call $~lib/set/Set#has + i64.const 100 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 local.get $2 - call $~lib/set/Set#has - i32.eqz + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $8 + local.get $7 + i32.store + local.get $8 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $5 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $2 - loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $8 i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $8 - local.get $7 - i32.store - local.get $8 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 + local.get $8 + call $~lib/array/Array#get:length local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store + i32.store offset=16 + local.get $1 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $8 + i32.store offset=16 local.get $0 - local.get $7 - i64.load - call $~lib/array/Array#__set - local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 i32.const 1 i32.add - local.set $0 + local.set $3 + br $for-loop|2 end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $1 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $0 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i64.const 0 + local.set $2 + loop $for-loop|3 local.get $2 - call $~lib/set/Set#has + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_u + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 local.get $2 - call $~lib/set/Set#has + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 34544 i32.const 34592 @@ -14187,241 +14209,244 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u if - local.get $3 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 + local.get $3 + local.get $2 + i32.const 3 + i32.shl i32.add - local.set $1 - local.get $7 - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $0 + i32.store + local.get $1 + local.tee $0 i32.const 1 i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity + local.set $1 + local.get $7 + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store + local.get $0 local.get $6 - local.get $7 - i32.store offset=12 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl + i32.add + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 2 - i32.shl - i32.add - local.get $4 - f32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 34544 i32.const 34592 @@ -15648,280 +15673,283 @@ local.get $0 i32.store local.get $0 - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $5 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 + i32.load + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + local.get $0 + i32.store + local.get $4 local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $5 + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $4 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u if - local.get $3 + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz + local.get $5 + i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer + local.get $3 + local.get $2 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end + global.get $~lib/memory/__stack_pointer local.get $6 - local.get $0 + i32.store + local.get $1 + local.tee $0 i32.const 1 i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity + local.set $1 + local.get $7 + f64.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $6 i32.store + local.get $0 local.get $6 - local.get $7 - i32.store offset=12 + i32.load offset=12 + i32.ge_u + if + local.get $0 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $6 + local.get $0 + i32.const 1 + i32.add + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl + i32.add + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - i32.load offset=4 - local.get $0 - i32.const 3 - i32.shl - i32.add - local.get $4 - f64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $2 + br $for-loop|0 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + unreachable end i32.const 34544 i32.const 34592 diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index 7ab6891f98..cab51153a5 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -142,35 +142,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 672 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 672 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -392,20 +394,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -615,25 +619,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -651,26 +657,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -995,25 +1003,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1022,35 +1032,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1140,6 +1152,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1208,13 +1221,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1283,13 +1298,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1297,19 +1314,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1317,25 +1336,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1504,37 +1525,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1553,29 +1576,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2496,6 +2521,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index d05a08308f..4cd6506637 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -200,35 +200,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 384 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 384 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -454,20 +456,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -681,25 +685,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -717,26 +723,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1061,25 +1069,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1088,35 +1098,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1206,6 +1218,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1274,13 +1287,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1349,13 +1364,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1363,19 +1380,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1383,25 +1402,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1570,37 +1591,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1619,29 +1642,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2550,38 +2575,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2762,40 +2789,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -2971,149 +3000,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -3153,83 +3184,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -3486,14 +3521,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -3570,6 +3607,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/staticarray/StaticArray#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -3586,25 +3624,27 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end ) @@ -3643,25 +3683,27 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end ) @@ -4489,30 +4531,32 @@ drop i32.const 0 local.set $off - loop $while-continue|0 - local.get $off - local.get $size - i32.lt_u - if - local.get $sourceStart - local.get $off - i32.add - i32.load - local.set $ref - local.get $outStart - local.get $off - i32.add - local.get $ref - i32.store - local.get $outStart - local.get $ref - i32.const 1 - call $~lib/rt/itcms/__link + block $while-break|0 + loop $while-continue|0 local.get $off - i32.const 4 - i32.add - local.set $off - br $while-continue|0 + local.get $size + i32.lt_u + if + local.get $sourceStart + local.get $off + i32.add + i32.load + local.set $ref + local.get $outStart + local.get $off + i32.add + local.get $ref + i32.store + local.get $outStart + local.get $ref + i32.const 1 + call $~lib/rt/itcms/__link + local.get $off + i32.const 4 + i32.add + local.set $off + br $while-continue|0 + end end end local.get $out @@ -4971,44 +5015,46 @@ select local.set $fromIndex end - loop $while-continue|0 - local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $value - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String.__eq + local.get $length + i32.lt_s if + local.get $this local.get $fromIndex + i32.const 2 + i32.shl + i32.add + i32.load local.set $6 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $6 - return + i32.store + local.get $6 + local.get $value + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/string/String.__eq + if + local.get $fromIndex + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -5116,47 +5162,49 @@ select local.set $fromIndex end - loop $while-continue|0 - local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem - local.get $elem - local.get $value - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $length + i32.lt_s + if + local.get $this + local.get $fromIndex + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem local.get $elem - f64.ne local.get $value - local.get $value - f64.ne - i32.and - end - if + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f64.ne + local.get $value + local.get $value + f64.ne + i32.and + end + if + i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $fromIndex i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const 0 @@ -5167,6 +5215,12 @@ global.set $~lib/memory/__stack_pointer local.get $7 return + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 ) (func $~lib/staticarray/StaticArray#includes (param $this i32) (param $value f32) (param $fromIndex i32) (result i32) (local $length i32) @@ -5228,47 +5282,49 @@ select local.set $fromIndex end - loop $while-continue|0 - local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem - local.get $elem - local.get $value - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $length + i32.lt_s + if + local.get $this + local.get $fromIndex + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem local.get $elem - f32.ne - local.get $value local.get $value - f32.ne - i32.and - end - if + f32.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f32.ne + local.get $value + local.get $value + f32.ne + i32.and + end + if + i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + return + end + local.get $fromIndex i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const 0 @@ -5279,6 +5335,12 @@ global.set $~lib/memory/__stack_pointer local.get $7 return + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 ) (func $~lib/staticarray/StaticArray#indexOf (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) (local $length i32) @@ -5337,34 +5399,36 @@ select local.set $fromIndex end - loop $while-continue|0 - local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq + local.get $length + i32.lt_s if + local.get $this local.get $fromIndex - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return + end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.add - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -5427,34 +5491,36 @@ local.set $fromIndex end end - loop $while-continue|0 - local.get $fromIndex - i32.const 0 - i32.ge_s - if - local.get $this + block $while-break|0 + loop $while-continue|0 local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq + i32.const 0 + i32.ge_s if + local.get $this local.get $fromIndex - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return + i32.load + local.get $value + i32.eq + if + local.get $fromIndex + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + return + end + local.get $fromIndex + i32.const 1 + i32.sub + local.set $fromIndex + br $while-continue|0 end - local.get $fromIndex - i32.const 1 - i32.sub - local.set $fromIndex - br $while-continue|0 end end i32.const -1 @@ -5785,6 +5851,12 @@ global.set $~lib/memory/__stack_pointer local.get $2 return + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (param $this i32) (result i32) (local $1 i32) @@ -7231,143 +7303,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -10148,25 +10222,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 5c505b09e8..4de33aa9ea 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -4012,233 +4012,236 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 7 - i32.const 0 - call $~lib/rt/__newArray - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $7 - loop $for-loop|0 - local.get $7 - local.get $9 - i32.gt_s - if - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $8 + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $7 local.get $9 - local.get $0 - i32.const 3472 - i32.load - call_indirect (type $1) + i32.gt_s if - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=12 - local.tee $6 - i32.const 1 + local.get $0 + local.get $9 + i32.const 2 + i32.shl i32.add - local.tee $5 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i32.load + local.set $8 global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $3 - local.get $10 - i32.load offset=8 - local.tee $1 - i32.const 2 - i32.shr_u - i32.gt_u + local.get $0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $9 + local.get $0 + i32.const 3472 + i32.load + call_indirect (type $1) if - local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1776 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer local.get $10 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store - block $__inlined_func$~lib/rt/itcms/__renew$224 - i32.const 1073741820 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - local.get $1 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.load offset=12 + local.tee $6 + i32.const 1 + i32.add + local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $3 + local.get $10 + i32.load offset=8 + local.tee $1 + i32.const 2 + i32.shr_u + i32.gt_u + if local.get $3 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $4 - local.get $10 - i32.load - local.tee $1 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u + i32.const 268435455 + i32.gt_u if + i32.const 1680 + i32.const 1776 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$224 + i32.const 1073741820 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + local.get $1 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 local.get $3 + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $4 + local.get $10 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if + local.get $3 + local.get $4 + i32.store offset=16 + local.get $1 + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$224 + end local.get $4 - i32.store offset=16 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 local.get $1 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$224 + local.get $4 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_u + select + memory.copy end - local.get $4 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 local.get $1 - local.get $4 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_u - select - memory.copy - end - local.get $1 - local.get $2 - i32.ne - if - local.get $10 - local.get $2 - i32.store - local.get $10 local.get $2 - i32.store offset=4 + i32.ne + if + local.get $10 + local.get $2 + i32.store + local.get $10 + local.get $2 + i32.store offset=4 + local.get $10 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + end local.get $10 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link + local.get $4 + i32.store offset=8 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $10 - local.get $4 - i32.store offset=8 + i32.store + local.get $10 + i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl + i32.add + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=4 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $9 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $9 + br $for-loop|0 end - local.get $9 - i32.const 1 - i32.add - local.set $9 - br $for-loop|0 end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return + unreachable end i32.const 36752 i32.const 36800 @@ -5694,7 +5697,7 @@ call $~lib/rt/itcms/__new local.tee $8 i32.store offset=4 - loop $for-loop|011 + loop $for-loop|03 local.get $0 local.get $2 i32.gt_u @@ -5716,7 +5719,7 @@ i32.const 4 i32.add local.set $2 - br $for-loop|011 + br $for-loop|03 end end local.get $0 @@ -5729,7 +5732,7 @@ local.set $2 i32.const 0 local.set $0 - loop $for-loop|112 + loop $for-loop|14 local.get $0 local.get $2 i32.lt_u @@ -5751,7 +5754,7 @@ i32.const 4 i32.add local.set $0 - br $for-loop|112 + br $for-loop|14 end end global.get $~lib/memory/__stack_pointer @@ -6530,7 +6533,7 @@ i32.const 0 br $__inlined_func$~lib/staticarray/StaticArray#includes$277 end - loop $while-continue|026 + loop $while-continue|030 local.get $1 local.get $2 i32.lt_s @@ -6556,7 +6559,7 @@ i32.const 1 i32.add local.set $1 - br $while-continue|026 + br $while-continue|030 end end global.get $~lib/memory/__stack_pointer @@ -7017,7 +7020,7 @@ i32.gt_u select local.set $0 - loop $for-loop|026 + loop $for-loop|032 local.get $0 local.get $2 i32.lt_s @@ -7033,7 +7036,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|026 + br $for-loop|032 end end global.get $~lib/memory/__stack_pointer @@ -7123,7 +7126,7 @@ i32.const 1 i32.sub local.set $2 - loop $while-continue|028 + loop $while-continue|035 local.get $0 local.get $5 i32.lt_u @@ -7154,7 +7157,7 @@ i32.const 1 i32.add local.set $0 - br $while-continue|028 + br $while-continue|035 end end end @@ -7443,7 +7446,7 @@ local.set $7 i32.const 0 local.set $0 - loop $for-loop|029 + loop $for-loop|038 local.get $0 local.get $5 i32.lt_s @@ -7475,7 +7478,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|029 + br $for-loop|038 end end global.get $~lib/memory/__stack_pointer @@ -7562,7 +7565,7 @@ i32.const 2 i32.shr_u local.set $0 - loop $for-loop|030 + loop $for-loop|040 local.get $0 local.get $1 i32.gt_s @@ -7589,7 +7592,7 @@ i32.const 1 i32.add local.set $1 - br $for-loop|030 + br $for-loop|040 end end global.get $~lib/memory/__stack_pointer @@ -7696,7 +7699,7 @@ i32.const 2 i32.shr_u local.set $5 - loop $for-loop|031 + loop $for-loop|042 local.get $0 local.get $5 i32.lt_s @@ -7725,7 +7728,7 @@ i32.const 1 i32.add local.set $0 - br $for-loop|031 + br $for-loop|042 end end global.get $~lib/memory/__stack_pointer @@ -7774,7 +7777,7 @@ i32.const 1 i32.sub local.set $0 - loop $for-loop|032 + loop $for-loop|044 local.get $0 i32.const 0 i32.ge_s @@ -7803,7 +7806,7 @@ i32.const 1 i32.sub local.set $0 - br $for-loop|032 + br $for-loop|044 end end global.get $~lib/memory/__stack_pointer @@ -8110,12 +8113,12 @@ i32.const 0 i32.gt_s if - loop $while-continue|01 + loop $while-continue|047 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|01 + br $while-continue|047 end end end diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 21f3389d96..82256a31b4 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -286,35 +286,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -540,20 +542,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -767,25 +771,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -803,26 +809,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1147,25 +1155,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1174,35 +1184,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1292,6 +1304,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1360,13 +1373,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1435,13 +1450,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1449,19 +1466,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1469,25 +1488,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1656,37 +1677,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1705,29 +1728,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2544,27 +2569,14 @@ i32.const 8 i32.shr_u local.set $xb - loop $while-continue|0 - local.get $xn - if + block $while-break|0 + loop $while-continue|0 local.get $xn - i32.const 1 - i32.shr_u - local.set $h - i32.const 5572 - local.get $xb - local.get $h - i32.add - i32.const 2 - i32.mul - i32.add - i32.load8_u - local.set $t - local.get $t - local.get $c - i32.eq if - i32.const 4100 + local.get $xn + i32.const 1 + i32.shr_u + local.set $h i32.const 5572 local.get $xb local.get $h @@ -2572,62 +2584,77 @@ i32.const 2 i32.mul i32.add - i32.load8_u offset=1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $r - local.get $r - i32.const 255 - i32.and - local.set $rt - local.get $r - i32.const 8 - i32.shr_s - local.set $rd - local.get $rt - i32.const 2 - i32.lt_u - if - local.get $c0 - local.get $rd - i32.const 0 - local.get $rt - local.get $dir - i32.xor - i32.sub - i32.and - i32.add - return - end - local.get $c0 - i32.const 1 - i32.add - local.get $dir - i32.const 1 - i32.shl - i32.sub - return - else + i32.load8_u + local.set $t local.get $t local.get $c - i32.gt_u + i32.eq if - local.get $h - local.set $xn - else + i32.const 4100 + i32.const 5572 local.get $xb local.get $h i32.add - local.set $xb - local.get $xn - local.get $h + i32.const 2 + i32.mul + i32.add + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $r + local.get $r + i32.const 255 + i32.and + local.set $rt + local.get $r + i32.const 8 + i32.shr_s + local.set $rd + local.get $rt + i32.const 2 + i32.lt_u + if + local.get $c0 + local.get $rd + i32.const 0 + local.get $rt + local.get $dir + i32.xor + i32.sub + i32.and + i32.add + return + end + local.get $c0 + i32.const 1 + i32.add + local.get $dir + i32.const 1 + i32.shl i32.sub - local.set $xn + return + else + local.get $t + local.get $c + i32.gt_u + if + local.get $h + local.set $xn + else + local.get $xb + local.get $h + i32.add + local.set $xb + local.get $xn + local.get $h + i32.sub + local.set $xn + end end + br $while-continue|0 end - br $while-continue|0 end end local.get $c0 @@ -2750,38 +2777,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2880,59 +2909,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 18188 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 18188 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -3078,107 +3109,109 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - loop $while-continue|0 - local.get $num - i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num - local.get $t i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 18188 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 18188 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i64.ge_u + if + local.get $num + i64.const 100000000 + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 18188 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 18188 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $buffer @@ -3188,35 +3221,37 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 18608 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 18608 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -3270,40 +3305,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -3445,6 +3484,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -3720,51 +3760,53 @@ local.set $max i32.const 0 local.set $min - loop $while-continue|1 - local.get $min - local.get $max - i32.le_s - if + block $while-break|1 + loop $while-continue|1 local.get $min local.get $max - i32.add - i32.const 3 - i32.shr_u - i32.const 2 - i32.shl - local.set $mid - local.get $ptr - local.get $mid - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $key - i32.sub - local.set $cmp - local.get $cmp - i32.const 0 - i32.eq + i32.le_s if + local.get $min + local.get $max + i32.add + i32.const 3 + i32.shr_u + i32.const 2 + i32.shl + local.set $mid + local.get $ptr local.get $mid - br $~lib/util/casemap/bsearch|inlined.0 - else + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $key + i32.sub + local.set $cmp local.get $cmp - i32.const 31 - i32.shr_u + i32.const 0 + i32.eq if local.get $mid - i32.const 4 - i32.add - local.set $min + br $~lib/util/casemap/bsearch|inlined.0 else - local.get $mid - i32.const 4 - i32.sub - local.set $max + local.get $cmp + i32.const 31 + i32.shr_u + if + local.get $mid + i32.const 4 + i32.add + local.set $min + else + local.get $mid + i32.const 4 + i32.sub + local.set $max + end end + br $while-continue|1 end - br $while-continue|1 end end i32.const -1 @@ -4234,135 +4276,137 @@ i32.gt_s select local.set $minPos - loop $while-continue|1 - local.get $pos - local.get $minPos - i32.gt_s - if - block $~lib/util/string/codePointBefore|inlined.0 (result i32) - local.get $buffer - local.set $buffer|19 - local.get $pos - local.set $index|20 - local.get $index|20 - i32.const 0 - i32.le_s - if - i32.const -1 - br $~lib/util/string/codePointBefore|inlined.0 - end - local.get $buffer|19 - local.get $index|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $c|21 - local.get $c|21 - i32.const 64512 - i32.and - i32.const 56320 - i32.eq - local.get $index|20 - i32.const 2 - i32.sub - i32.const 0 - i32.ge_s - i32.and - if + block $while-break|1 + loop $while-continue|1 + local.get $pos + local.get $minPos + i32.gt_s + if + block $~lib/util/string/codePointBefore|inlined.0 (result i32) + local.get $buffer + local.set $buffer|19 + local.get $pos + local.set $index|20 + local.get $index|20 + i32.const 0 + i32.le_s + if + i32.const -1 + br $~lib/util/string/codePointBefore|inlined.0 + end local.get $buffer|19 local.get $index|20 - i32.const 2 + i32.const 1 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.set $c1|22 - local.get $c1|22 + local.set $c|21 + local.get $c|21 i32.const 64512 i32.and - i32.const 55296 + i32.const 56320 i32.eq + local.get $index|20 + i32.const 2 + i32.sub + i32.const 0 + i32.ge_s + i32.and if - local.get $c1|22 - i32.const 1023 - i32.and - i32.const 10 + local.get $buffer|19 + local.get $index|20 + i32.const 2 + i32.sub + i32.const 1 i32.shl - local.get $c|21 - i32.const 1023 - i32.and - i32.add - i32.const 65536 i32.add - br $~lib/util/string/codePointBefore|inlined.0 + i32.load16_u + local.set $c1|22 + local.get $c1|22 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq + if + local.get $c1|22 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + local.get $c|21 + i32.const 1023 + i32.and + i32.add + i32.const 65536 + i32.add + br $~lib/util/string/codePointBefore|inlined.0 + end end - end - local.get $c|21 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if (result i32) - i32.const 65533 - else local.get $c|21 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if (result i32) + i32.const 65533 + else + local.get $c|21 + end + br $~lib/util/string/codePointBefore|inlined.0 end - br $~lib/util/string/codePointBefore|inlined.0 - end - local.set $c|23 - block $~lib/util/string/isCaseIgnorable|inlined.0 (result i32) - local.get $c|23 - local.set $c|24 - local.get $c|24 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $c|24 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - br $~lib/util/string/isCaseIgnorable|inlined.0 - end - i32.eqz - if - block $~lib/util/string/isCased|inlined.0 (result i32) + local.set $c|23 + block $~lib/util/string/isCaseIgnorable|inlined.0 (result i32) local.get $c|23 - local.set $c|25 - local.get $c|25 - i32.const 127370 + local.set $c|24 + local.get $c|24 + i32.const 918000 i32.lt_u if (result i32) - i32.const 9196 - local.get $c|25 + i32.const 6188 + local.get $c|24 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end - br $~lib/util/string/isCased|inlined.0 + br $~lib/util/string/isCaseIgnorable|inlined.0 end + i32.eqz if - i32.const 1 - local.set $found - else - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 + block $~lib/util/string/isCased|inlined.0 (result i32) + local.get $c|23 + local.set $c|25 + local.get $c|25 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $c|25 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCased|inlined.0 + end + if + i32.const 1 + local.set $found + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 + end end + local.get $pos + local.get $c|23 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $pos + br $while-continue|1 end - local.get $pos - local.get $c|23 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $pos - br $while-continue|1 end end local.get $found @@ -4386,101 +4430,103 @@ i32.lt_s select local.set $maxPos - loop $while-continue|2 - local.get $pos - local.get $maxPos - i32.lt_s - if - local.get $buffer - local.get $pos - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $c|29 - local.get $c|29 - i32.const 64512 - i32.and - i32.const 55296 - i32.eq + block $while-break|2 + loop $while-continue|2 local.get $pos - i32.const 1 - i32.add - local.get $len|13 - i32.ne - i32.and + local.get $maxPos + i32.lt_s if local.get $buffer local.get $pos i32.const 1 i32.shl i32.add - i32.load16_u offset=2 - local.set $c1|30 - local.get $c1|30 + i32.load16_u + local.set $c|29 + local.get $c|29 i32.const 64512 i32.and - i32.const 56320 + i32.const 55296 i32.eq + local.get $pos + i32.const 1 + i32.add + local.get $len|13 + i32.ne + i32.and if - local.get $c|29 - i32.const 55296 - i32.sub - i32.const 10 + local.get $buffer + local.get $pos + i32.const 1 i32.shl + i32.add + i32.load16_u offset=2 + local.set $c1|30 local.get $c1|30 + i32.const 64512 + i32.and i32.const 56320 - i32.sub - i32.add - i32.const 65536 - i32.add - local.set $c|29 - end - end - block $~lib/util/string/isCaseIgnorable|inlined.1 (result i32) - local.get $c|29 - local.set $c|31 - local.get $c|31 - i32.const 918000 - i32.lt_u - if (result i32) - i32.const 6188 - local.get $c|31 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 + i32.eq + if + local.get $c|29 + i32.const 55296 + i32.sub + i32.const 10 + i32.shl + local.get $c1|30 + i32.const 56320 + i32.sub + i32.add + i32.const 65536 + i32.add + local.set $c|29 + end end - br $~lib/util/string/isCaseIgnorable|inlined.1 - end - i32.eqz - if - block $~lib/util/string/isCased|inlined.1 (result i32) + block $~lib/util/string/isCaseIgnorable|inlined.1 (result i32) local.get $c|29 - local.set $c|32 - local.get $c|32 - i32.const 127370 + local.set $c|31 + local.get $c|31 + i32.const 918000 i32.lt_u if (result i32) - i32.const 9196 - local.get $c|32 + i32.const 6188 + local.get $c|31 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end - br $~lib/util/string/isCased|inlined.1 + br $~lib/util/string/isCaseIgnorable|inlined.1 end i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 + if + block $~lib/util/string/isCased|inlined.1 (result i32) + local.get $c|29 + local.set $c|32 + local.get $c|32 + i32.const 127370 + i32.lt_u + if (result i32) + i32.const 9196 + local.get $c|32 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCased|inlined.1 + end + i32.eqz + br $~lib/util/string/isFinalSigma|inlined.0 + end + local.get $pos + local.get $c|29 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $pos + br $while-continue|2 end - local.get $pos - local.get $c|29 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $pos - br $while-continue|2 end end i32.const 1 @@ -7672,22 +7718,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -7702,22 +7750,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -7744,22 +7794,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 8bc24bd177..42684945d9 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -125,35 +125,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -379,20 +381,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -606,25 +610,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -642,26 +648,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -986,25 +994,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1013,35 +1023,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1131,6 +1143,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1199,13 +1212,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1274,13 +1289,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1288,19 +1305,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1308,25 +1327,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1495,37 +1516,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1544,29 +1567,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2371,38 +2396,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2533,218 +2560,220 @@ local.set $strEnd local.get $buf local.set $bufOff - loop $while-continue|0 - local.get $str - local.get $strEnd - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $str - i32.load16_u - local.set $c1 - local.get $c1 - i32.const 128 + local.get $strEnd i32.lt_u if - local.get $bufOff - local.get $c1 - i32.store8 - local.get $bufOff - i32.const 1 - i32.add - local.set $bufOff - local.get $nullTerminated - local.get $c1 - i32.eqz - i32.and - if - local.get $bufOff - local.get $buf - i32.sub - return - end - else + local.get $str + i32.load16_u + local.set $c1 local.get $c1 - i32.const 2048 + i32.const 128 i32.lt_u if - local.get $c1 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $b0 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1 local.get $bufOff - local.get $b1 - i32.const 8 - i32.shl - local.get $b0 - i32.or - i32.store16 + local.get $c1 + i32.store8 local.get $bufOff - i32.const 2 + i32.const 1 i32.add local.set $bufOff - else + local.get $nullTerminated local.get $c1 - i32.const 63488 + i32.eqz i32.and - i32.const 55296 - i32.eq + if + local.get $bufOff + local.get $buf + i32.sub + return + end + else + local.get $c1 + i32.const 2048 + i32.lt_u if local.get $c1 - i32.const 56320 - i32.lt_u - if (result i32) - local.get $str - i32.const 2 - i32.add - local.get $strEnd - i32.lt_u - else - i32.const 0 - end + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $b0 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1 + local.get $bufOff + local.get $b1 + i32.const 8 + i32.shl + local.get $b0 + i32.or + i32.store16 + local.get $bufOff + i32.const 2 + i32.add + local.set $bufOff + else + local.get $c1 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq if - local.get $str - i32.load16_u offset=2 - local.set $c2 - local.get $c2 - i32.const 64512 - i32.and + local.get $c1 i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $c1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl + i32.lt_u + if (result i32) + local.get $str + i32.const 2 i32.add + local.get $strEnd + i32.lt_u + else + i32.const 0 + end + if + local.get $str + i32.load16_u offset=2 + local.set $c2 local.get $c2 - i32.const 1023 + i32.const 64512 i32.and - i32.or - local.set $c1 - local.get $c1 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $b0|11 - local.get $c1 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1|12 - local.get $c1 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b2 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b3 - local.get $bufOff - local.get $b3 - i32.const 24 - i32.shl - local.get $b2 - i32.const 16 - i32.shl - i32.or - local.get $b1|12 - i32.const 8 - i32.shl - i32.or - local.get $b0|11 - i32.or - i32.store - local.get $bufOff - i32.const 4 - i32.add - local.set $bufOff - local.get $str - i32.const 4 - i32.add - local.set $str - br $while-continue|0 + i32.const 56320 + i32.eq + if + i32.const 65536 + local.get $c1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add + local.get $c2 + i32.const 1023 + i32.and + i32.or + local.set $c1 + local.get $c1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $b0|11 + local.get $c1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1|12 + local.get $c1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b2 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b3 + local.get $bufOff + local.get $b3 + i32.const 24 + i32.shl + local.get $b2 + i32.const 16 + i32.shl + i32.or + local.get $b1|12 + i32.const 8 + i32.shl + i32.or + local.get $b0|11 + i32.or + i32.store + local.get $bufOff + i32.const 4 + i32.add + local.set $bufOff + local.get $str + i32.const 4 + i32.add + local.set $str + br $while-continue|0 + end end - end - local.get $errorMode - i32.const 0 - i32.ne - if local.get $errorMode - i32.const 2 - i32.eq + i32.const 0 + i32.ne if - i32.const 688 - i32.const 752 - i32.const 742 - i32.const 49 - call $~lib/builtins/abort - unreachable + local.get $errorMode + i32.const 2 + i32.eq + if + i32.const 688 + i32.const 752 + i32.const 742 + i32.const 49 + call $~lib/builtins/abort + unreachable + end + i32.const 65533 + local.set $c1 end - i32.const 65533 - local.set $c1 end + local.get $c1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $b0|15 + local.get $c1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1|16 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b2|17 + local.get $bufOff + local.get $b1|16 + i32.const 8 + i32.shl + local.get $b0|15 + i32.or + i32.store16 + local.get $bufOff + local.get $b2|17 + i32.store8 offset=2 + local.get $bufOff + i32.const 3 + i32.add + local.set $bufOff end - local.get $c1 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $b0|15 - local.get $c1 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1|16 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b2|17 - local.get $bufOff - local.get $b1|16 - i32.const 8 - i32.shl - local.get $b0|15 - i32.or - i32.store16 - local.get $bufOff - local.get $b2|17 - i32.store8 offset=2 - local.get $bufOff - i32.const 3 - i32.add - local.set $bufOff end + local.get $str + i32.const 2 + i32.add + local.set $str + br $while-continue|0 end - local.get $str - i32.const 2 - i32.add - local.set $str - br $while-continue|0 end end local.get $nullTerminated @@ -2833,14 +2862,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -2893,6 +2924,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 1896b425de..95fabaa572 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1692,965 +1692,968 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 55572 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 12 - i32.ne - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 1 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 8 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 55 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 220 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 + i32.shl + i32.const 55572 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 i32.const 20 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - if + i32.sub + i32.load offset=16 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 55 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 220 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + if + i32.const 0 + i32.const 1088 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + if + i32.const 0 + i32.const 1088 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 82 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 216 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + i32.const 98 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=11 + i32.const 223 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/string/String.UTF16.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF16DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 82 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 - i32.const 98 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 26 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=11 - i32.const 223 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/string/String.UTF16.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8EncodeNullTerminated + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + i32.const 1904 i32.const 0 - i32.const 1088 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if i32.const 0 - i32.const 1088 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 - i32.const 1088 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8EncodeNullTerminated - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - i32.const 1904 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - local.get $0 - i32.const 1904 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + local.get $0 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + i32.const 1904 i32.const 0 - i32.const 1088 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - i32.const 1904 - i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 - i32.const 1088 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - i32.const 1968 - i32.const 0 - i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1936 + i32.store offset=4 + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + i32.const 1968 i32.const 0 - i32.const 1088 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - i32.const 1968 - i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if i32.const 0 - i32.const 1088 - i32.const 108 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 - i32.const 1088 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + i32.const 1968 i32.const 0 - i32.const 1088 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $0 + local.get $1 i32.const 0 - i32.const 1088 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1936 + i32.store offset=4 + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 i32.const 0 - i32.const 1088 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store - i32.const 2048 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1088 - i32.const 127 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store + i32.const 2048 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 i32.const 0 - i32.const 1088 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store - i32.const 2112 - call $std/string-encoding/testRoundtrip - global.get $~lib/memory/__stack_pointer - i32.const 15232 - i32.store - i32.const 15232 - call $std/string-encoding/testRoundtrip - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 2112 + i32.store + i32.const 2112 + call $std/string-encoding/testRoundtrip + global.get $~lib/memory/__stack_pointer + i32.const 15232 + i32.store + i32.const 15232 + call $std/string-encoding/testRoundtrip + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|0 + end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|0 + br $while-continue|1 end end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 55600 i32.const 55648 diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index 9e74fc89e8..3498786725 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -98,38 +98,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -383,6 +385,7 @@ i32.const 0 call $~lib/string/String.__eq if + nop else local.get $0 local.set $1 @@ -402,6 +405,7 @@ i32.const 0 call $~lib/string/String.__eq if + nop else local.get $0 local.set $1 @@ -420,6 +424,7 @@ local.get $1 call $~lib/string/String.__not if + nop else local.get $0 local.set $1 diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 957f42687b..6e314553b2 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -636,38 +636,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -723,35 +725,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 416 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 416 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -977,20 +981,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -1204,25 +1210,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -1240,26 +1248,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1584,25 +1594,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1611,35 +1623,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1729,6 +1743,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1797,13 +1812,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1872,13 +1889,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1886,19 +1905,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1906,25 +1927,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -2093,37 +2116,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + global.set $~lib/rt/itcms/iter local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + call $~lib/rt/itcms/Object#get:color + local.get $black + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 + end end end i32.const 0 @@ -2142,29 +2167,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2992,22 +3019,24 @@ local.get $count i32.mul local.set $total - loop $while-continue|0 - local.get $index - local.get $total - i32.lt_u - if - local.get $dst - local.get $index - i32.add - local.get $src - local.get $srcLength - memory.copy + block $while-break|0 + loop $while-continue|0 local.get $index - local.get $srcLength - i32.add - local.set $index - br $while-continue|0 + local.get $total + i32.lt_u + if + local.get $dst + local.get $index + i32.add + local.get $src + local.get $srcLength + memory.copy + local.get $index + local.get $srcLength + i32.add + local.set $index + br $while-continue|0 + end end end ) @@ -3290,27 +3319,29 @@ end end end - loop $while-continue|1 - local.get $e - if + block $while-break|1 + loop $while-continue|1 local.get $e - i32.const 1 - i32.and if - local.get $out + local.get $e + i32.const 1 + i32.and + if + local.get $out + local.get $x + i32.mul + local.set $out + end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x local.get $x i32.mul - local.set $out + local.set $x + br $while-continue|1 end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x - local.get $x - i32.mul - local.set $x - br $while-continue|1 end end local.get $out @@ -3570,59 +3601,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 15196 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 15196 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -3699,35 +3732,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 15616 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 15616 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -3781,40 +3816,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -3983,107 +4022,109 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - loop $while-continue|0 - local.get $num - i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num - local.get $t i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 15196 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 15196 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i64.ge_u + if + local.get $num + i64.const 100000000 + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 15196 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 15196 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $buffer @@ -4155,441 +4196,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 23248 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 23248 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 23248 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 23248 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -4814,20 +4868,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.4 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -4893,20 +4949,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.5 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -5090,111 +5148,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 22376 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 23072 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 22376 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 23072 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -5482,14 +5544,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -5562,6 +5626,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -7046,25 +7111,27 @@ local.set $size i32.const 0 local.set $offset - loop $while-continue|0 - local.get $offset - local.get $size - i32.lt_u - if (result i32) - local.get $this - local.get $offset - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 2 - i32.add - local.set $offset - br $while-continue|0 + local.get $size + i32.lt_u + if (result i32) + local.get $this + local.get $offset + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $offset + i32.const 2 + i32.add + local.set $offset + br $while-continue|0 + end end end local.get $offset @@ -7141,25 +7208,27 @@ local.set $originalSize local.get $originalSize local.set $size - loop $while-continue|0 - local.get $size - if (result i32) - local.get $this - local.get $size - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 + if (result i32) + local.get $this + local.get $size + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|0 + end end end local.get $size @@ -7232,52 +7301,56 @@ i32.const 1 i32.shl local.set $size - loop $while-continue|0 - local.get $size - if (result i32) - local.get $this - local.get $size - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 + if (result i32) + local.get $this + local.get $size + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|0 + end end end i32.const 0 local.set $offset - loop $while-continue|1 - local.get $offset - local.get $size - i32.lt_u - if (result i32) - local.get $this - local.get $offset - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if + block $while-break|1 + loop $while-continue|1 local.get $offset - i32.const 2 - i32.add - local.set $offset local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|1 + i32.lt_u + if (result i32) + local.get $this + local.get $offset + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $offset + i32.const 2 + i32.add + local.set $offset + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|1 + end end end local.get $size @@ -7362,50 +7435,54 @@ i32.const 8 i32.gt_u if - loop $while-continue|0 - local.get $size - if (result i32) - local.get $str - local.get $size - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 - end - end - local.get $size - i32.const 8 - i32.gt_u - if - loop $while-continue|1 - local.get $offset + block $while-break|0 + loop $while-continue|0 local.get $size - i32.lt_u if (result i32) local.get $str - local.get $offset + local.get $size i32.add + i32.const 2 + i32.sub i32.load16_u call $~lib/util/string/isSpace else i32.const 0 end if - local.get $offset + local.get $size i32.const 2 - i32.add - local.set $offset - br $while-continue|1 + i32.sub + local.set $size + br $while-continue|0 + end + end + end + local.get $size + i32.const 8 + i32.gt_u + if + block $while-break|1 + loop $while-continue|1 + local.get $offset + local.get $size + i32.lt_u + if (result i32) + local.get $str + local.get $offset + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $offset + i32.const 2 + i32.add + local.set $offset + br $while-continue|1 + end end end local.get $size @@ -7487,21 +7564,23 @@ local.get $ptr i32.load16_u local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end end end f64.const 1 @@ -7914,26 +7993,28 @@ local.set $code f64.const 1 local.set $sign - loop $while-continue|0 - local.get $len - if (result i32) - local.get $code - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code + block $while-break|0 + loop $while-continue|0 local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 + if (result i32) + local.get $code + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end end end local.get $len @@ -8071,22 +8152,24 @@ end local.get $ptr local.set $savedPtr - loop $while-continue|1 - local.get $code - i32.const 48 - i32.eq - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + local.get $code + i32.const 48 + i32.eq + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|1 + end end end local.get $len @@ -8388,27 +8471,29 @@ local.set $code|18 end end - loop $while-continue|4 - local.get $code|18 - i32.const 48 - i32.eq - if - local.get $len|15 - i32.const 1 - i32.sub - local.tee $len|15 - i32.eqz + block $while-break|4 + loop $while-continue|4 + local.get $code|18 + i32.const 48 + i32.eq if - i32.const 0 - br $~lib/util/string/parseExp|inlined.0 + local.get $len|15 + i32.const 1 + i32.sub + local.tee $len|15 + i32.eqz + if + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 + end + local.get $ptr|14 + i32.const 2 + i32.add + local.tee $ptr|14 + i32.load16_u + local.set $code|18 + br $while-continue|4 end - local.get $ptr|14 - i32.const 2 - i32.add - local.tee $ptr|14 - i32.load16_u - local.set $code|18 - br $while-continue|4 end end local.get $code|18 @@ -8973,21 +9058,23 @@ local.get $ptr i32.load16_u local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end end end i32.const 1 @@ -9351,21 +9438,23 @@ local.get $ptr i32.load16_u local.set $code - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 + block $while-break|0 + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 + end end end i64.const 1 @@ -10606,40 +10695,42 @@ local.get $this local.get $outSize memory.copy - loop $while-continue|1 - local.get $this - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store - local.get $19 - local.get $search - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store offset=4 - local.get $19 - local.get $prev - call $~lib/string/String#indexOf - local.tee $next - i32.const -1 - i32.xor - if - local.get $out|13 - local.get $next - i32.const 1 - i32.shl - i32.add - local.get $replacement - local.get $replaceLen - i32.const 1 - i32.shl - memory.copy - local.get $next - local.get $searchLen - i32.add - local.set $prev - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + local.get $this + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store + local.get $19 + local.get $search + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store offset=4 + local.get $19 + local.get $prev + call $~lib/string/String#indexOf + local.tee $next + i32.const -1 + i32.xor + if + local.get $out|13 + local.get $next + i32.const 1 + i32.shl + i32.add + local.get $replacement + local.get $replaceLen + i32.const 1 + i32.shl + memory.copy + local.get $next + local.get $searchLen + i32.add + local.set $prev + br $while-continue|1 + end end end local.get $out|13 @@ -10657,104 +10748,106 @@ local.set $offset|15 local.get $thisLen local.set $outSize|16 - loop $while-continue|2 - local.get $this - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store - local.get $19 - local.get $search - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store offset=4 - local.get $19 - local.get $prev - call $~lib/string/String#indexOf - local.tee $next - i32.const -1 - i32.xor - if - local.get $out|14 + block $while-break|2 + loop $while-continue|2 + local.get $this local.set $19 global.get $~lib/memory/__stack_pointer local.get $19 i32.store local.get $19 - call $~lib/string/String.__not + local.get $search + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store offset=4 + local.get $19 + local.get $prev + call $~lib/string/String#indexOf + local.tee $next + i32.const -1 + i32.xor if + local.get $out|14 + local.set $19 global.get $~lib/memory/__stack_pointer - local.get $thisLen + local.get $19 + i32.store + local.get $19 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $thisLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out|14 + i32.store offset=16 + end + local.get $next + local.get $prev + i32.sub + local.set $chunk + local.get $offset|15 + local.get $chunk + i32.add + local.get $replaceLen + i32.add + local.get $outSize|16 + i32.gt_u + if + local.get $outSize|16 + i32.const 1 + i32.shl + local.set $outSize|16 + global.get $~lib/memory/__stack_pointer + local.get $out|14 + local.get $outSize|16 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $out|14 + i32.store offset=16 + end + local.get $out|14 + local.get $offset|15 i32.const 1 i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out|14 - i32.store offset=16 - end - local.get $next - local.get $prev - i32.sub - local.set $chunk - local.get $offset|15 - local.get $chunk - i32.add - local.get $replaceLen - i32.add - local.get $outSize|16 - i32.gt_u - if - local.get $outSize|16 + i32.add + local.get $this + local.get $prev i32.const 1 i32.shl - local.set $outSize|16 - global.get $~lib/memory/__stack_pointer + i32.add + local.get $chunk + i32.const 1 + i32.shl + memory.copy + local.get $offset|15 + local.get $chunk + i32.add + local.set $offset|15 local.get $out|14 - local.get $outSize|16 + local.get $offset|15 + i32.const 1 + i32.shl + i32.add + local.get $replacement + local.get $replaceLen i32.const 1 i32.shl - call $~lib/rt/itcms/__renew - local.tee $out|14 - i32.store offset=16 + memory.copy + local.get $offset|15 + local.get $replaceLen + i32.add + local.set $offset|15 + local.get $next + local.get $searchLen + i32.add + local.set $prev + br $while-continue|2 end - local.get $out|14 - local.get $offset|15 - i32.const 1 - i32.shl - i32.add - local.get $this - local.get $prev - i32.const 1 - i32.shl - i32.add - local.get $chunk - i32.const 1 - i32.shl - memory.copy - local.get $offset|15 - local.get $chunk - i32.add - local.set $offset|15 - local.get $out|14 - local.get $offset|15 - i32.const 1 - i32.shl - i32.add - local.get $replacement - local.get $replaceLen - i32.const 1 - i32.shl - memory.copy - local.get $offset|15 - local.get $replaceLen - i32.add - local.set $offset|15 - local.get $next - local.get $searchLen - i32.add - local.set $prev - br $while-continue|2 end end local.get $out|14 @@ -11813,102 +11906,104 @@ local.set $start i32.const 0 local.set $i|16 - loop $while-continue|1 - local.get $this - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $separator - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor - if - local.get $end + block $while-break|1 + loop $while-continue|1 + local.get $this + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $separator + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 local.get $start - i32.sub - local.set $len - local.get $len - i32.const 0 - i32.gt_s + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=28 - local.get $out - local.get $this + local.get $end local.get $start + i32.sub + local.set $len + local.get $len + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $len + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=28 + local.get $out + local.get $this + local.get $start + i32.const 1 + i32.shl + i32.add + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + i32.const 688 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $i|16 i32.const 1 - i32.shl i32.add - local.get $len - i32.const 1 - i32.shl - memory.copy - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $out - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - i32.const 688 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $i|16 - i32.const 1 - i32.add - local.tee $i|16 - local.get $limit - i32.eq - if - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - i32.const 36 + local.tee $i|16 + local.get $limit + i32.eq + if + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $21 + return + end + local.get $end + local.get $sepLen i32.add - global.set $~lib/memory/__stack_pointer - local.get $21 - return + local.set $start + br $while-continue|1 end - local.get $end - local.get $sepLen - i32.add - local.set $start - br $while-continue|1 end end local.get $start @@ -28637,25 +28732,27 @@ i32.shl i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end local.get $this @@ -28927,22 +29024,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -28967,23 +29066,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 @@ -29092,20 +29193,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -29128,21 +29231,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.1 + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + end else local.get $value i64.extend_i32_u @@ -29254,20 +29359,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -29280,20 +29387,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.0 + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -29318,20 +29427,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.0 + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix @@ -29458,22 +29569,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.3 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -29488,22 +29601,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.1 + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -29530,22 +29645,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.1 + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index ca03f8216a..c53167a286 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -154,35 +154,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -408,20 +410,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -635,25 +639,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -671,26 +677,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1015,25 +1023,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1042,35 +1052,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1160,6 +1172,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1228,13 +1241,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1303,13 +1318,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1317,19 +1334,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1337,25 +1356,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1524,37 +1545,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1573,29 +1596,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2506,38 +2531,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2807,6 +2834,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $"~lib/map/Map<~lib/string/String,usize>~visit" (param $0 i32) (param $1 i32) local.get $0 @@ -3067,88 +3095,90 @@ i32.const 16 i32.sub local.set $end - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.0 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.0 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.1 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.1 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.2 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.2 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.3 (result i32) - local.get $s4 - local.set $h|16 + block $while-break|0 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 + end + local.set $s3 + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 + end + local.set $s4 local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul + i32.const 16 i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.3 + local.set $pos + br $while-continue|0 end - local.set $s4 - local.get $pos - i32.const 16 - i32.add - local.set $pos - br $while-continue|0 end end local.get $h @@ -3183,58 +3213,62 @@ i32.const 4 i32.sub local.set $end|18 - loop $while-continue|1 - local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h + block $while-break|1 + loop $while-continue|1 local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 + local.get $end|18 + i32.le_u + if + local.get $h + local.get $pos + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 + end end end local.get $key|1 local.get $len i32.add local.set $end|18 - loop $while-continue|2 - local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h - local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h + block $while-break|2 + loop $while-continue|2 local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 + local.get $end|18 + i32.lt_u + if + local.get $h + local.get $pos + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 + end end end local.get $h @@ -3403,51 +3437,53 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $key - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String.__eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $key + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -3634,77 +3670,79 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry - global.get $~lib/memory/__stack_pointer - local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.tee $oldEntryKey - i32.store offset=12 - local.get $newEntry - local.get $oldEntryKey - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" - local.get $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" - local.get $oldEntryKey - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $newBucketsMask + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + global.get $~lib/memory/__stack_pointer + local.get $oldEntry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.tee $oldEntryKey + i32.store offset=12 + local.get $newEntry + local.get $oldEntryKey + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + local.get $oldEntryKey + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" end i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" + local.set $oldPtr + br $while-continue|0 end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -4124,41 +4162,43 @@ i32.add i32.load local.set $entry - loop $while-continue|0 - local.get $entry - if + block $while-break|0 + loop $while-continue|0 local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end if local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 end end i32.const 0 @@ -4249,70 +4289,72 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - loop $while-continue|0 - local.get $oldPtr - local.get $oldEnd - i32.ne - if + block $while-break|0 + loop $while-continue|0 local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $oldEnd + i32.ne if - local.get $newPtr - local.set $newEntry + local.get $oldPtr + local.set $oldEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.3" + end + i32.add + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" + br $"~lib/map/ENTRY_SIZE|inlined.4" end i32.add - local.set $newPtr + local.set $oldPtr + br $while-continue|0 end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" - end - i32.add - local.set $oldPtr - br $while-continue|0 end end local.get $this @@ -5490,40 +5532,42 @@ i32.mul i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $end + i32.lt_u if - i32.const 1 - drop + local.get $cur + local.set $entry local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - i32.const 0 - drop - end - local.get $cur - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + i32.const 1 + drop + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.set $val + i32.const 0 + drop + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + i32.const 0 + drop + end + local.get $cur + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" + end + i32.add + local.set $cur + br $while-continue|0 end - i32.add - local.set $cur - br $while-continue|0 end end local.get $entries @@ -5585,40 +5629,42 @@ i32.mul i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz + local.get $end + i32.lt_u if - i32.const 0 - drop - i32.const 1 - drop + local.get $cur + local.set $entry local.get $entry - call $"~lib/map/MapEntry#get:value" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + i32.const 0 + drop + i32.const 1 + drop + local.get $entry + call $"~lib/map/MapEntry#get:value" + local.set $val + i32.const 0 + drop + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.7" + end + i32.add + local.set $cur + br $while-continue|0 end - i32.add - local.set $cur - br $while-continue|0 end end local.get $entries diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index fecf5869a5..387f531a13 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -466,35 +466,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -720,20 +722,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -947,25 +951,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -983,26 +989,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1327,25 +1335,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1354,35 +1364,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1472,6 +1484,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1540,13 +1553,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1615,13 +1630,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1629,19 +1646,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1649,25 +1668,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1836,37 +1857,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1885,29 +1908,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2750,149 +2775,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + f64.load + local.set $a local.get $a - f64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + f64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - f64.store offset=16 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + f64.load + local.set $a local.get $a - f64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + f64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + f64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - f64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -2932,83 +2959,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -4431,38 +4462,40 @@ i32.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s - if - local.get $ux - local.get $uy - i32.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s if local.get $ux local.get $uy - i32.eq + i32.ge_u if - f32.const 0 - local.get $x - f32.mul - return + local.get $ux + local.get $uy + i32.eq + if + f32.const 0 + local.get $x + f32.mul + return + end + local.get $ux + local.get $uy + i32.sub + local.set $ux end local.get $ux - local.get $uy - i32.sub + i32.const 1 + i32.shl local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -4696,38 +4729,40 @@ i64.or local.set $uy end - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s - if - local.get $ux - local.get $uy - i64.ge_u + block $while-break|0 + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s if local.get $ux local.get $uy - i64.eq + i64.ge_u if - f64.const 0 - local.get $x - f64.mul - return + local.get $ux + local.get $uy + i64.eq + if + f64.const 0 + local.get $x + f64.mul + return + end + local.get $ux + local.get $uy + i64.sub + local.set $ux end local.get $ux - local.get $uy - i64.sub + i64.const 1 + i64.shl local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end - local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|0 end end local.get $ux @@ -4896,40 +4931,42 @@ i32.const 8 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - i32.const 7 - i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.add - local.set $front - local.get $ptr - local.get $tail - i32.add + block $while-break|0 + loop $while-continue|0 local.get $i - i32.sub - local.set $back - local.get $front - i64.load - call $~lib/polyfills/bswap - local.set $temp - local.get $front - local.get $back - i64.load - call $~lib/polyfills/bswap - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 8 + i32.const 7 i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.add + local.set $front + local.get $ptr + local.get $tail + i32.add + local.get $i + i32.sub + local.set $back + local.get $front + i64.load + call $~lib/polyfills/bswap + local.set $temp + local.get $front + local.get $back + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 8 + i32.add + local.set $i + br $while-continue|0 + end end end i32.const 1 @@ -4940,40 +4977,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|1 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 0 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load8_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load8_u - i32.store8 - local.get $back|9 - local.get $temp|10 - i32.store8 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load8_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load8_u + i32.store8 + local.get $back|9 + local.get $temp|10 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 + end end end end @@ -5014,86 +5053,90 @@ i32.const 2 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $i i32.const 1 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl i32.add - local.set $back - local.get $back - i32.load - i32.const 16 - i32.rotr - local.set $temp - local.get $back - local.get $front - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $front - local.get $temp - i32.store - local.get $i - i32.const 2 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back + local.get $back + i32.load + i32.const 16 + i32.rotr + local.set $temp + local.get $back + local.get $front + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $front + local.get $temp + i32.store + local.get $i + i32.const 2 + i32.add + local.set $i + br $while-continue|0 + end end end local.get $len i32.const 1 i32.sub local.set $tail - loop $while-continue|1 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load16_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load16_u - i32.store16 - local.get $back|9 - local.get $temp|10 - i32.store16 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load16_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load16_u + i32.store16 + local.get $back|9 + local.get $temp|10 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 + end end end end @@ -5131,40 +5174,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail + block $while-break|0 + loop $while-continue|0 local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -5202,40 +5247,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail + block $while-break|0 + loop $while-continue|0 local.get $i - i32.sub - i32.const 3 - i32.shl - i32.add - local.set $back - local.get $front - i64.load - local.set $temp - local.get $front - local.get $back - i64.load - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $back + local.get $front + i64.load + local.set $temp + local.get $front + local.get $back + i64.load + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -5273,40 +5320,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - f32.load - local.set $temp - local.get $front - local.get $back - f32.load - f32.store - local.get $back - local.get $temp - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + f32.load + local.set $temp + local.get $front + local.get $back + f32.load + f32.store + local.get $back + local.get $temp + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -5344,40 +5393,42 @@ i32.const 1 i32.sub local.set $tail - loop $while-continue|0 - local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 3 - i32.shl - i32.add - local.set $back - local.get $front - f64.load - local.set $temp - local.get $front - local.get $back - f64.load - f64.store - local.get $back - local.get $temp - f64.store + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 + local.get $hlen + i32.lt_u + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $back + local.get $front + f64.load + local.set $temp + local.get $front + local.get $back + f64.load + f64.store + local.get $back + local.get $temp + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 + end end end end @@ -5449,59 +5500,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 6988 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6988 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -5578,35 +5631,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer + block $while-break|0 + loop $while-continue|0 local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 7408 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7408 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -5660,40 +5715,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -5917,20 +5976,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6003,38 +6064,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -6093,20 +6156,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.3 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6239,20 +6304,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.4 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6311,20 +6378,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.5 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6405,20 +6474,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.6 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6471,20 +6542,22 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.7 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end local.get $sign local.get $decimals i32.add @@ -6560,107 +6633,109 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - loop $while-continue|0 - local.get $num - i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t + block $while-break|0 + loop $while-continue|0 local.get $num - local.get $t i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 6988 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 6988 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i64.ge_u + if + local.get $num + i64.const 100000000 + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 6988 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6988 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $buffer @@ -6755,40 +6830,44 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.9 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.1 + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end local.get $sign local.get $decimals @@ -6853,40 +6932,44 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.11 + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.3 + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end local.get $sign local.get $decimals @@ -6956,441 +7039,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 9712 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 9712 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 end + local.get $len + return end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return + br $while-continue|0 end - br $while-continue|0 end end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 9712 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 9712 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -7615,20 +7711,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.12 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -7694,20 +7792,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.13 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -7891,111 +7991,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8840 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 9536 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8840 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 9536 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -8542,149 +8646,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $a + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add + i32.load8_s + local.set $a local.get $a - i32.store8 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $a + i32.store8 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $max - i32.store8 offset=2 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $max + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add + i32.load8_s + local.set $a local.get $a - i32.store8 offset=1 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $a + i32.store8 offset=1 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $min + i32.store8 offset=1 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $min - i32.store8 offset=1 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -8724,83 +8830,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store8 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -9036,149 +9146,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $a + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add + i32.load8_u + local.set $a local.get $a - i32.store8 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $a + i32.store8 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $max - i32.store8 offset=2 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $max + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add + i32.load8_u + local.set $a local.get $a - i32.store8 offset=1 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $a + i32.store8 offset=1 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $min + i32.store8 offset=1 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $min - i32.store8 offset=1 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -9218,83 +9330,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store8 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -9578,149 +9694,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $a + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add + i32.load16_s + local.set $a local.get $a - i32.store16 offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $a + i32.store16 offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $max - i32.store16 offset=4 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $max + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add + i32.load16_s + local.set $a local.get $a - i32.store16 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $a + i32.store16 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $min + i32.store16 offset=2 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $min - i32.store16 offset=2 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -9760,83 +9878,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store16 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -10072,149 +10194,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $a + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add + i32.load16_u + local.set $a local.get $a - i32.store16 offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $a + i32.store16 offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $max - i32.store16 offset=4 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $max + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add + i32.load16_u + local.set $a local.get $a - i32.store16 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $a + i32.store16 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $min + i32.store16 offset=2 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $min - i32.store16 offset=2 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -10254,83 +10378,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $tmp + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -10580,149 +10708,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -10762,83 +10892,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -11068,149 +11202,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + i32.load + local.set $a local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -11250,83 +11386,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -11560,149 +11700,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + i64.load + local.set $a local.get $a - i64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + i64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - i64.store offset=16 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + i64.load + local.set $a local.get $a - i64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + i64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + i64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - i64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -11742,83 +11884,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -12052,149 +12198,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + i64.load + local.set $a local.get $a - i64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + i64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - i64.store offset=16 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add + i64.load + local.set $a local.get $a - i64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $a + i64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + i64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - i64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -12234,83 +12382,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -12544,149 +12696,151 @@ select i32.add local.set $i - loop $for-loop|0 - local.get $i - local.get $right - i32.le_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $ptr + block $for-break0 + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max - local.get $a - local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 + local.get $right i32.le_s if - local.get $a - local.set $min + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $b local.get $b + local.set $min + local.get $a local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 + i32.le_s + if + local.get $a + local.set $min + local.get $b + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + f32.load + local.set $a local.get $a - f32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + f32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end - br $while-continue|1 end end - end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - f32.store offset=8 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s + local.get $left + i32.ge_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add + f32.load + local.set $a local.get $a - f32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s + if + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $a + f32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 + end + br $while-continue|2 end - br $while-continue|2 end end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + f32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - f32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end end ) @@ -12726,83 +12880,87 @@ i32.const 0 i32.gt_s if - loop $while-continue|0 - local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr + block $while-break|0 + loop $while-continue|0 local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + local.get $right + i32.lt_s + if (result i32) + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $j local.set $k - loop $while-continue|1 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 + end end end else @@ -13055,14 +13213,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -13170,6 +13330,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -16807,143 +16968,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -39681,60 +39844,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int8Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Int8Array,i8>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -39934,60 +40099,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint8Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint8Array,u8>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint8Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -40190,60 +40357,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -40444,60 +40613,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int16Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Int16Array,i16>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int16Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -40697,60 +40868,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint16Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint16Array,u16>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint16Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -40949,60 +41122,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Int32Array,i32>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -41195,60 +41370,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint32Array,u32>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -41442,60 +41619,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $26) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Int64Array,i64>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int64Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $26) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -41692,60 +41871,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $26) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint64Array,u64>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint64Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $26) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -41942,60 +42123,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Float32Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $37) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Float32Array,f32>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Float32Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $37) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -42192,60 +42375,62 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Float64Array#get:length - local.set $k - loop $for-loop|0 - local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $38) + block $"~lib/typedarray/FOREACH<~lib/typedarray/Float64Array,f64>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Float64Array#get:length + local.set $k + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $38) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -46728,29 +46913,31 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $searchElement|4 - i32.extend8_s - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart + local.get $index + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $searchElement|4 + i32.extend8_s + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" + end local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -46833,29 +47020,31 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $searchElement|4 - i32.extend8_s - i32.eq + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $searchElement|4 + i32.extend8_s + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -47625,30 +47814,32 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -47731,30 +47922,32 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq + i32.ge_s if + local.get $dataStart + local.get $index + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + end local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -48525,30 +48718,32 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart + local.get $index + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" + end local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -48631,30 +48826,32 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -49425,29 +49622,31 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $searchElement|4 - i32.extend16_s - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $searchElement|4 + i32.extend16_s + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -49530,29 +49729,31 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $searchElement|4 - i32.extend16_s - i32.eq + i32.const 0 + i32.ge_s if + local.get $dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $searchElement|4 + i32.extend16_s + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" + end local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -50322,30 +50523,32 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $searchElement|4 - i32.const 65535 - i32.and - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $searchElement|4 + i32.const 65535 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + end local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -50428,30 +50631,32 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $searchElement|4 - i32.const 65535 - i32.and - i32.eq + i32.const 0 + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $searchElement|4 + i32.const 65535 + i32.and + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -51222,28 +51427,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -51326,28 +51533,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq + i32.const 0 + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -52116,28 +52325,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq + local.get $len + i32.lt_s if + local.get $dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + end local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -52220,28 +52431,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq + i32.const 0 + i32.ge_s if + local.get $dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + end local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -53010,28 +53223,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq + local.get $len + i32.lt_s if + local.get $dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + end local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -53114,28 +53329,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq + i32.const 0 + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -53905,28 +54122,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -54009,28 +54228,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq + i32.const 0 + i32.ge_s if + local.get $dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + end local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -54800,28 +55021,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.get $searchElement|4 - f32.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + i32.const 2 + i32.shl + i32.add + f32.load + local.get $searchElement|4 + f32.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -54904,28 +55127,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.get $searchElement|4 - f32.eq + i32.const 0 + i32.ge_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + i32.const 2 + i32.shl + i32.add + f32.load + local.get $searchElement|4 + f32.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" + end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -55695,28 +55920,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.get $searchElement|4 - f64.eq + local.get $len + i32.lt_s if + local.get $dataStart local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + i32.const 3 + i32.shl + i32.add + f64.load + local.get $searchElement|4 + f64.eq + if + local.get $index + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const -1 @@ -55799,28 +56026,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - i32.const 0 - i32.ge_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.get $searchElement|4 - f64.eq + i32.const 0 + i32.ge_s if + local.get $dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + f64.load + local.get $searchElement|4 + f64.eq + if + local.get $index + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + end local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 end end i32.const -1 @@ -56593,41 +56822,43 @@ local.get $12 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem - local.get $elem - local.get $searchElement|4 - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $len + i32.lt_s + if + local.get $dataStart + local.get $index + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem local.get $elem - f64.ne local.get $searchElement|4 - local.get $searchElement|4 - f64.ne - i32.and - end - if + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f64.ne + local.get $searchElement|4 + local.get $searchElement|4 + f64.ne + i32.and + end + if + i32.const 1 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + end + local.get $index i32.const 1 - br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const 0 @@ -56719,41 +56950,43 @@ local.get $12 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - loop $while-continue|0 - local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart + block $while-break|0 + loop $while-continue|0 local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem - local.get $elem - local.get $searchElement|4 - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem + local.get $len + i32.lt_s + if + local.get $dataStart + local.get $index + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem local.get $elem - f32.ne local.get $searchElement|4 - local.get $searchElement|4 - f32.ne - i32.and - end - if + f32.eq + if (result i32) + i32.const 1 + else + local.get $elem + local.get $elem + f32.ne + local.get $searchElement|4 + local.get $searchElement|4 + f32.ne + i32.and + end + if + i32.const 1 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + end + local.get $index i32.const 1 - br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + i32.add + local.set $index + br $while-continue|0 end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 end end i32.const 0 @@ -65014,108 +65247,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -65336,119 +65571,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_s + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -65478,109 +65715,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -65635,119 +65874,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_s + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -65774,81 +66015,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -65876,108 +66119,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -66004,81 +66249,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -66432,108 +66679,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -66754,119 +67003,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -66896,109 +67147,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -67028,119 +67281,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67167,81 +67422,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -67269,108 +67526,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -67397,81 +67656,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -67825,141 +68086,143 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end end - local.get $target - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl + i32.const 12 i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#__uget (param $this i32) (param $index i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#__uget (param $this i32) (param $index i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check global.get $~lib/memory/__stack_pointer i32.const 0 i32.store @@ -68111,122 +68374,124 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $value - f32.min - f32.max - i32.trunc_sat_f32_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $value + f32.min + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -68256,131 +68521,133 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $value - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $value - i64.or - i64.and - i64.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $value + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $value + i64.or + i64.and + i64.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -68410,122 +68677,124 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $value - f64.min - f64.max - i32.trunc_sat_f64_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + f64.const 0 + f64.const 255 + local.get $value + f64.min + f64.max + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -68552,81 +68821,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 + i32.const 0 + i32.shl i32.add - local.get $target + local.set $targetStart + local.get $source|4 local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -68654,127 +68925,129 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -68804,126 +69077,128 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.eqz - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.eqz + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -69279,108 +69554,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -69603,119 +69880,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_s + else + i32.const 0 + end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -69745,109 +70024,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -69877,119 +70158,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_s + else + i32.const 0 + end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70019,108 +70302,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -70147,81 +70432,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 1 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 1 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -70249,108 +70536,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -70706,108 +70995,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 + i32.const 1 + i32.shl i32.add - local.get $target + local.set $targetStart + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -71030,119 +71321,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71172,109 +71465,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -71304,119 +71599,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71446,108 +71743,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -71574,81 +71873,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 1 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 1 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -71676,108 +71977,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i + if (result i32) i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -72130,81 +72433,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -72400,119 +72705,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_s + else + i32.const 0 + end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -72541,110 +72848,112 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + i32.store offset=8 + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -72674,119 +72983,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_s + else + i32.const 0 + end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -72816,108 +73127,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -72947,108 +73260,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -73078,108 +73393,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -73532,81 +73849,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -73788,153 +74107,11 @@ i32.const 0 i32.const 544 i32.const 764 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - end - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $this i32) (param $source i32) (param $offset i32) - (local $target i32) - (local $source|4 i32) - (local $offset|5 i32) - (local $sourceLen i32) - (local $targetStart i32) - (local $sourceStart i32) - (local $i i32) - (local $ptr i32) - (local $value f32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else - i32.const 0 + i32.const 7 + call $~lib/builtins/abort + unreachable + end end - i32.store local.get $i i32.const 1 i32.add @@ -73943,11 +74120,11 @@ end end global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (param $this i32) (param $source i32) (param $offset i32) + (func $~lib/typedarray/Uint32Array#set<~lib/array/Array> (param $this i32) (param $source i32) (param $offset i32) (local $target i32) (local $source|4 i32) (local $offset|5 i32) @@ -73956,7 +74133,7 @@ (local $sourceStart i32) (local $i i32) (local $ptr i32) - (local $value i64) + (local $value f32) (local $12 i32) global.get $~lib/memory/__stack_pointer i32.const 12 @@ -73969,109 +74146,255 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $value + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end end - local.get $target - local.set $12 global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl + i32.const 12 i32.add - local.set $targetStart - local.get $source|4 - local.set $12 + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint32Array#set<~lib/typedarray/Int64Array> (param $this i32) (param $source i32) (param $offset i32) + (local $target i32) + (local $source|4 i32) + (local $offset|5 i32) + (local $sourceLen i32) + (local $targetStart i32) + (local $sourceStart i32) + (local $i i32) + (local $ptr i32) + (local $value i64) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 3 - i32.eq - drop i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + i32.store offset=8 + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -74101,119 +74424,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) + local.get $value + i32.trunc_sat_f64_u + else + i32.const 0 + end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74243,108 +74568,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 + i32.const 2 + i32.shl i32.add - local.get $target + local.set $targetStart + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -74374,108 +74701,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -74505,108 +74834,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -74962,109 +75293,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -75289,119 +75622,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i64) + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr local.get $value - i64.trunc_sat_f32_s - else - i64.const 0 + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $value + i64.trunc_sat_f32_s + else + i64.const 0 + end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -75428,81 +75763,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 3 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 3 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -75530,119 +75867,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i64) + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr local.get $value - i64.trunc_sat_f64_s - else - i64.const 0 + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $value + i64.trunc_sat_f64_s + else + i64.const 0 + end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -75668,113 +76007,115 @@ call $~stack_check global.get $~lib/memory/__stack_pointer i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + i32.store offset=8 + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_u - i64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_u + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -75804,109 +76145,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -75936,109 +76279,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -76394,109 +76739,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.get $offset|5 + i32.const 3 + i32.shl i32.add - local.get $target + local.set $targetStart + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -76721,119 +77068,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i64) + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr local.get $value - i64.trunc_sat_f32_u - else - i64.const 0 + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i64) + local.get $value + i64.trunc_sat_f32_u + else + i64.const 0 + end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -76860,81 +77209,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 3 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 3 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -76962,119 +77313,121 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i64) + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr local.get $value - i64.trunc_sat_f64_u - else - i64.const 0 + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i64) + local.get $value + i64.trunc_sat_f64_u + else + i64.const 0 + end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77104,109 +77457,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_u - i64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_u + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -77236,109 +77591,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -77368,109 +77725,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -77826,109 +78185,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -78125,81 +78486,83 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen local.get $offset|5 - i32.add + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -78227,109 +78590,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i64_s - f32.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i64_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -78359,109 +78724,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_u - f32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_u + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -78491,109 +78858,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -78623,109 +78992,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79049,109 +79420,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79349,110 +79722,112 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - local.get $ptr - local.get $value - f64.promote_f32 - f64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + local.get $ptr + local.get $value + f64.promote_f32 + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79482,109 +79857,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Int64Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i64_s - f64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i64_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79614,109 +79991,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Uint8Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_u - f64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_u + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79746,109 +80125,111 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Int16Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -79877,110 +80258,112 @@ i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + i32.store offset=8 + block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -80304,122 +80687,124 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Float32Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Float32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $ptr - local.get $sourceStart + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $value - f32.min - f32.max - i32.trunc_sat_f32_u - else + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) + f32.const 0 + f32.const 255 + local.get $value + f32.min + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80449,127 +80834,129 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int32Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Int32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -80601,118 +80988,120 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target + block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Uint32Array>|inlined.0" + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 local.set $14 global.get $~lib/memory/__stack_pointer local.get $14 i32.store offset=8 local.get $14 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen + call $~lib/typedarray/Uint32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - i32.const 255 - local.tee $12 - local.get $value - local.tee $13 - local.get $12 - local.get $13 - i32.lt_u - select - i32.store8 - local.get $i + if (result i32) i32.const 1 + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $i - br $for-loop|0 + local.get $target + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + i32.const 255 + local.tee $12 + local.get $value + local.tee $13 + local.get $12 + local.get $13 + i32.lt_u + select + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end end end global.get $~lib/memory/__stack_pointer @@ -81001,143 +81390,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -81764,143 +82155,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -82812,143 +83205,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -83575,143 +83970,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -84336,143 +84733,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -85099,143 +85498,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -85860,143 +86261,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -86623,143 +87026,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -87384,143 +87789,145 @@ local.set $top i32.const 0 local.set $startA - loop $while-continue|2 - local.get $endA - local.get $hi - i32.lt_s - if + block $while-break|2 + loop $while-continue|2 local.get $endA - i32.const 1 - i32.add - local.set $startB - local.get $ptr - local.get $startB local.get $hi - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 i32.lt_s if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add + local.get $endA i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB + i32.add + local.set $startB local.get $ptr local.get $startB - local.get $endB - local.get $lenB + local.get $hi local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 - local.get $i|30 - local.get $k - i32.gt_u + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 + i32.lt_s if - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - i32.load - local.set $start - local.get $start - i32.const -1 - i32.ne + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB + local.get $ptr + local.get $startB + local.get $endB + local.get $lenB + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $ptr - local.get $start - local.get $leftRunEndBuf + local.get $leftRunStartBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns + local.set $start local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add i32.const -1 - i32.store + i32.ne + if + local.get $ptr + local.get $start + local.get $leftRunEndBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns + local.get $start + local.set $startA + local.get $leftRunStartBuf + local.get $i|30 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store + end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end end local.get $top @@ -93221,22 +93628,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -93261,23 +93670,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 @@ -93386,20 +93797,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -93422,21 +93835,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.1 + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut + end else local.get $value i64.extend_i32_u @@ -93565,22 +93980,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.8 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -93595,22 +94012,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -93637,22 +94056,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix @@ -93772,20 +94193,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.10 + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $value call $~lib/util/number/decimalCount64High @@ -93798,20 +94221,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut + block $~lib/util/number/utoa64_dec_core|inlined.2 + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut + end end else local.get $radix @@ -93836,20 +94261,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa64_hex_core|inlined.1 + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.get $radix diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 30c2366c5a..5dd8ad2167 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -35686,11 +35686,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -35699,7 +35699,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -35709,18 +35709,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$6 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1396 local.get $0 i32.const 1 i32.sub @@ -35733,121 +35733,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load8_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 + i32.const 9584 local.get $4 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + i32.const 1 + i32.shl + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$6 + br $__inlined_func$~lib/util/string/joinIntegerArray$1396 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36035,11 +36034,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36048,7 +36047,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36058,18 +36057,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$7 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1397 local.get $0 i32.const 1 i32.sub @@ -36082,121 +36081,120 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load8_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load8_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 - i32.add - local.get $6 - i32.mul - i32.const 10 + i32.const 8 i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $3 + local.get $5 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add - local.get $2 + i32.const 9584 local.get $4 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + i32.const 1 + i32.shl + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.add - i32.load8_u - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.add + i32.load8_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$7 + br $__inlined_func$~lib/util/string/joinIntegerArray$1397 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36256,11 +36254,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36269,7 +36267,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36279,18 +36277,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$8 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1398 local.get $0 i32.const 1 i32.sub @@ -36303,125 +36301,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load16_s - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_s + call $~lib/util/number/itoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 i32.const 1 i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_s - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_s + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$8 + br $__inlined_func$~lib/util/string/joinIntegerArray$1398 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36447,11 +36444,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36460,7 +36457,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36470,18 +36467,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$9 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1399 local.get $0 i32.const 1 i32.sub @@ -36494,133 +36491,132 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load16_u - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store + local.get $6 + i32.eqz + if + local.get $5 + i32.load16_u + call $~lib/util/number/utoa32 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 9580 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 i32.const 1 i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 1 - i32.shl - i32.add - i32.load16_u - call $~lib/util/number/itoa_buffered - local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$9 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $2 local.get $0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - i32.const 49120 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 1 + i32.shl + i32.add + i32.load16_u + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $~lib/string/String#substring + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1399 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + i32.const 49120 i32.const 49168 i32.const 1 i32.const 1 @@ -36638,11 +36634,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36651,7 +36647,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36661,18 +36657,18 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$10 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1400 local.get $0 i32.const 1 i32.sub @@ -36685,125 +36681,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/itoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 + local.get $6 + i32.eqz + if + local.get $5 i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 11 + call $~lib/util/number/itoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 11 + i32.add + local.get $6 + i32.mul + i32.const 11 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 11 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$10 + br $__inlined_func$~lib/util/string/joinIntegerArray$1400 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -36829,11 +36824,11 @@ i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 + block $folding-inner0 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner1 + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -36842,7 +36837,7 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $4 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -36852,20 +36847,20 @@ global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - block $__inlined_func$~lib/util/string/joinIntegerArray$11 (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $__inlined_func$~lib/util/string/joinIntegerArray$1401 + local.get $0 + i32.const 1 i32.sub local.tee $6 i32.const 0 @@ -36876,125 +36871,124 @@ i32.add global.set $~lib/memory/__stack_pointer i32.const 7776 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 + local.set $0 + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 end - block $folding-inner0 - local.get $6 - i32.eqz - if - local.get $4 - i32.load - call $~lib/util/number/utoa32 - local.set $0 - br $folding-inner0 - end - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9580 + local.get $6 + i32.eqz + if + local.get $5 i32.load - i32.const 1 - i32.shr_u - local.tee $0 - i32.const 10 + call $~lib/util/number/utoa32 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 + end + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9580 + i32.load + i32.const 1 + i32.shr_u + local.tee $4 + i32.const 10 + i32.add + local.get $6 + i32.mul + i32.const 10 + i32.add + local.tee $2 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store offset=4 + loop $for-loop|0 + local.get $3 local.get $6 - i32.mul - i32.const 10 - i32.add - local.tee $3 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $2 - local.get $6 - i32.lt_s + i32.lt_s + if + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $3 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.set $1 + local.get $4 if - local.get $5 + local.get $0 local.get $1 i32.const 1 i32.shl i32.add + i32.const 9584 local.get $4 - local.get $2 - i32.const 2 + i32.const 1 i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + memory.copy local.get $1 + local.get $4 i32.add local.set $1 - local.get $0 - if - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - i32.const 9584 - local.get $0 - i32.const 1 - i32.shl - memory.copy - local.get $0 - local.get $1 - i32.add - local.set $1 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - local.get $3 - local.get $5 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $4 - local.get $6 - i32.const 2 - i32.shl - i32.add - i32.load - call $~lib/util/number/itoa_buffered + end + local.get $2 + local.get $0 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $5 + local.get $6 + i32.const 2 + i32.shl + i32.add + i32.load + call $~lib/util/number/itoa_buffered + local.get $1 + i32.add + local.tee $1 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.add - local.tee $0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $0 - call $~lib/string/String#substring - local.set $0 - br $folding-inner0 - end + call $~lib/string/String#substring + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 - br $__inlined_func$~lib/util/string/joinIntegerArray$11 + br $__inlined_func$~lib/util/string/joinIntegerArray$1401 end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -37055,7 +37049,7 @@ global.get $~lib/memory/__stack_pointer i64.const 0 i64.store - block $__inlined_func$~lib/util/string/joinIntegerArray$12 + block $__inlined_func$~lib/util/string/joinIntegerArray$6 local.get $0 i32.const 1 i32.sub @@ -37069,7 +37063,7 @@ global.set $~lib/memory/__stack_pointer i32.const 7776 local.set $0 - br $__inlined_func$~lib/util/string/joinIntegerArray$12 + br $__inlined_func$~lib/util/string/joinIntegerArray$6 end block $folding-inner0 local.get $6 @@ -37361,7 +37355,7 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - br $__inlined_func$~lib/util/string/joinIntegerArray$12 + br $__inlined_func$~lib/util/string/joinIntegerArray$6 end global.get $~lib/memory/__stack_pointer i32.const 8 @@ -54095,12132 +54089,8188 @@ block $folding-inner19 block $folding-inner18 block $folding-inner17 - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 124 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 49088 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 32 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - local.get $6 - call $~lib/typedarray/Float64Array#sort@varargs - drop - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1568 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1728 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1808 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1840 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const -2 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1904 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $7 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $7 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 3 - i32.const 0 - i32.const 16 - i32.const 1936 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $7 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1968 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2000 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 181 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2048 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2096 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const -2 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2144 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2192 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $7 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $7 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 3 - i32.const 2 - i32.const 17 - i32.const 2240 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $7 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2272 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $7 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2320 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2368 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2416 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2464 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2512 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2560 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2608 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2656 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2704 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2752 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2800 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const -4 - i32.const -3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2848 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $7 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $8 - i32.store offset=72 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $7 - i32.store offset=76 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $7 - i32.store offset=80 - local.get $6 - local.get $7 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.get $8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $7 - local.get $6 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 303 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if + block + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + block + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 124 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 49088 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int64Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + local.get $6 + call $~lib/typedarray/Float64Array#sort@varargs + drop + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1728 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1808 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1840 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const -2 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1904 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $7 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $7 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 3 + i32.const 0 + i32.const 16 + i32.const 1936 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $7 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1968 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2000 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2048 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2096 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const -2 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2144 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2192 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $7 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $7 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 3 + i32.const 2 + i32.const 17 + i32.const 2240 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $7 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2272 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $7 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2320 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2368 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2416 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2464 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2512 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2560 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2608 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2656 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2704 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2752 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2800 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const -4 + i32.const -3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2848 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $7 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $8 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $7 + i32.store offset=76 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $7 + i32.store offset=80 + local.get $6 + local.get $7 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.get $8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $7 + local.get $6 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>$7" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $7 + i32.add + i32.load8_s + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 2896 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2928 + i32.store offset=8 + local.get $0 + i32.const 2928 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2960 + i32.store offset=8 + local.get $0 + i32.const 2960 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>$8" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|02 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 2992 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|02 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>$9" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|04 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 3024 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|04 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>$10" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|06 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 3056 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|06 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>$11" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|08 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 3088 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|08 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>$12" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|010 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3120 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|010 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>$13" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|012 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3152 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|012 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>$14" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|014 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $4 + local.get $11 + local.get $0 + local.get $1 + i32.const 3184 + i32.load + call_indirect (type $22) + local.set $4 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|014 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + f32.const 6 + f32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>$15" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|016 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $12 + local.get $0 + local.get $1 + i32.const 3216 + i32.load + call_indirect (type $23) + local.set $5 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|016 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + f64.const 6 + f64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>$16" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|018 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $0 + local.get $7 + i32.add + i32.load8_s + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 + local.get $0 + local.get $6 + i32.const 3248 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|018 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3280 + i32.store offset=8 + local.get $0 + i32.const 3280 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store offset=8 + local.get $0 + i32.const 3312 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>$17" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|020 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 + local.get $0 + local.get $6 + i32.const 3344 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|020 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>$18" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|022 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 + local.get $0 + local.get $6 + i32.const 3376 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|022 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>$19" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 + local.get $0 + local.get $6 + i32.const 3408 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|024 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>$20" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|026 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 + local.get $0 + local.get $6 + i32.const 3440 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|026 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>$21" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|028 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3472 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|028 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>$22" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3504 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|030 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + f32.const 0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>$23" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|032 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $4 + local.get $11 + local.get $0 + local.get $1 + i32.const 3536 + i32.load + call_indirect (type $22) + local.set $4 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|032 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + f32.const 6 + f32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + f64.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>$24" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|034 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $12 + local.get $0 + local.get $1 + i32.const 3568 + i32.load + call_indirect (type $23) + local.set $5 + local.get $0 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|034 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + f64.const 6 + f64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=8 + local.get $0 + i32.const 4304 + call $~lib/typedarray/Int8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=8 + local.get $0 + i32.const 4336 + call $~lib/typedarray/Int8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=8 + local.get $0 + i32.const 4368 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=8 + local.get $0 + i32.const 4400 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=8 + local.get $0 + i32.const 4432 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=8 + local.get $0 + i32.const 4464 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=8 + local.get $0 + i32.const 4496 + call $~lib/typedarray/Int16Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=8 + local.get $0 + i32.const 4528 + call $~lib/typedarray/Int16Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=8 + local.get $0 + i32.const 4560 + call $~lib/typedarray/Uint16Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=8 + local.get $0 + i32.const 4592 + call $~lib/typedarray/Uint16Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=8 + local.get $0 + i32.const 4624 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=8 + local.get $0 + i32.const 4656 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=8 + local.get $0 + i32.const 4688 + call $~lib/typedarray/Uint32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=8 + local.get $0 + i32.const 4720 + call $~lib/typedarray/Uint32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=8 + local.get $0 + i32.const 4752 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=8 + local.get $0 + i32.const 4784 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=8 + local.get $0 + i32.const 4816 + call $~lib/typedarray/Uint64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=8 + local.get $0 + i32.const 4848 + call $~lib/typedarray/Uint64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=8 + local.get $0 + i32.const 4880 + call $~lib/typedarray/Float32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=8 + local.get $0 + i32.const 4912 + call $~lib/typedarray/Float32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=8 + local.get $0 + i32.const 4944 + call $~lib/typedarray/Float64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + local.get $0 + i32.const 4976 + call $~lib/typedarray/Float64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5008 + i32.store offset=8 + local.get $0 + i32.const 5008 + call $~lib/typedarray/Int8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5040 + i32.store offset=8 + local.get $0 + i32.const 5040 + call $~lib/typedarray/Int8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=8 + local.get $0 + i32.const 5072 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=8 + local.get $0 + i32.const 5104 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=8 + local.get $0 + i32.const 5136 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + local.get $0 + i32.const 5168 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=8 + local.get $0 + i32.const 5200 + call $~lib/typedarray/Int16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=8 + local.get $0 + i32.const 5232 + call $~lib/typedarray/Int16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=8 + local.get $0 + i32.const 5264 + call $~lib/typedarray/Uint16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=8 + local.get $0 + i32.const 5296 + call $~lib/typedarray/Uint16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store offset=8 + local.get $0 + i32.const 5328 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=8 + local.get $0 + i32.const 5360 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=8 + local.get $0 + i32.const 5392 + call $~lib/typedarray/Uint32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5424 + i32.store offset=8 + local.get $0 + i32.const 5424 + call $~lib/typedarray/Uint32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store offset=8 + local.get $0 + i32.const 5456 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=8 local.get $0 - local.get $7 + i32.const 5488 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load8_s - local.set $9 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5520 + i32.store offset=8 + local.get $0 + i32.const 5520 + call $~lib/typedarray/Uint64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store offset=8 + local.get $0 + i32.const 5552 + call $~lib/typedarray/Uint64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5584 + i32.store offset=8 + local.get $0 + i32.const 5584 + call $~lib/typedarray/Float32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=8 + local.get $0 + i32.const 5616 + call $~lib/typedarray/Float32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=8 + local.get $0 + i32.const 5648 + call $~lib/typedarray/Float64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5680 + i32.store offset=8 + local.get $0 + i32.const 5680 + call $~lib/typedarray/Float64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5712 + i32.store offset=8 + local.get $0 + i32.const 5712 + call $~lib/typedarray/Int8Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5744 + i32.store offset=8 + local.get $0 + i32.const 5744 + call $~lib/typedarray/Int8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 local.get $0 - local.get $6 - i32.const 2896 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 - local.get $0 - i32.const 2928 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=8 - local.get $0 - i32.const 2960 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|02 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5776 + i32.store offset=8 local.get $0 + i32.const 5776 + call $~lib/typedarray/Uint8Array#findLastIndex i32.const 1 - i32.shl + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5808 + i32.store offset=8 + local.get $0 + i32.const 5808 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load16_s - local.set $9 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.const 2992 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 local.get $0 + i32.const 0 i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|03 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 local.get $0 - local.get $6 - i32.const 3024 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5840 + i32.store offset=8 + local.get $0 + i32.const 5840 + call $~lib/typedarray/Uint8Array#findLastIndex i32.const 1 - i32.add - local.set $0 - br $for-loop|03 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|04 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5872 + i32.store offset=8 + local.get $0 + i32.const 5872 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.set $9 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.const 3056 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 local.get $0 + i32.const 0 i32.const 1 - i32.add - local.set $0 - br $for-loop|04 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|05 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + i32.const 1 i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 local.get $0 - local.get $6 - i32.const 3088 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.store offset=8 local.get $0 + i32.const 5904 + call $~lib/typedarray/Int16Array#findLastIndex i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5936 + i32.store offset=8 + local.get $0 + i32.const 5936 + call $~lib/typedarray/Int16Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $0 - br $for-loop|05 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|06 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 local.get $0 - local.get $1 - i32.const 3120 - i32.load - call_indirect (type $17) - local.set $3 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|06 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|07 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 local.get $0 - local.get $1 - i32.const 3152 - i32.load - call_indirect (type $17) - local.set $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5968 + i32.store offset=8 local.get $0 + i32.const 5968 + call $~lib/typedarray/Uint16Array#findLastIndex i32.const 1 - i32.add - local.set $0 - br $for-loop|07 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|08 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6000 + i32.store offset=8 + local.get $0 + i32.const 6000 + call $~lib/typedarray/Uint16Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - f32.load - local.set $11 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $4 - local.get $11 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 3184 - i32.load - call_indirect (type $22) - local.set $4 + i32.store offset=4 local.get $0 + i32.const 0 i32.const 1 - i32.add - local.set $0 - br $for-loop|08 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - f32.const 6 - f32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|09 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 + i32.const 2 i32.const 3 - i32.shl - i32.add - f64.load - local.set $12 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $12 local.get $0 - local.get $1 - i32.const 3216 - i32.load - call_indirect (type $23) - local.set $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6032 + i32.store offset=8 local.get $0 + i32.const 6032 + call $~lib/typedarray/Int32Array#findLastIndex i32.const 1 - i32.add - local.set $0 - br $for-loop|09 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - f64.const 6 - f64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int8Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint8Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint8Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int16Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint16Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int32Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int32Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint32Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int64Array#at - i64.const 3 - i64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint64Array#at - i64.const 3 - i64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Float32Array#at - f32.const 3 - f32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Float64Array#at - f64.const 3 - f64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|010 - local.get $0 - i32.const 0 - i32.ge_s - if + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6064 + i32.store offset=8 + local.get $0 + i32.const 6064 + call $~lib/typedarray/Int32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load8_s - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.const 3248 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 local.get $0 + i32.const 0 i32.const 1 - i32.sub - local.set $0 - br $for-loop|010 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=8 - local.get $0 - i32.const 3280 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=8 - local.get $0 - i32.const 3312 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|011 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 - local.get $6 - i32.const 3344 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6096 + i32.store offset=8 local.get $0 + i32.const 6096 + call $~lib/typedarray/Uint32Array#findLastIndex i32.const 1 - i32.sub - local.set $0 - br $for-loop|011 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|012 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6128 + i32.store offset=8 + local.get $0 + i32.const 6128 + call $~lib/typedarray/Uint32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load16_u - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.const 3376 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.sub - local.set $0 - br $for-loop|012 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|013 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 + i64.const 3 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 local.get $0 - local.get $6 - i32.const 3408 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6160 + i32.store offset=8 local.get $0 + i32.const 6160 + call $~lib/typedarray/Int64Array#findLastIndex i32.const 1 - i32.sub - local.set $0 - br $for-loop|013 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|014 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 2 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6192 + i32.store offset=8 + local.get $0 + i32.const 6192 + call $~lib/typedarray/Int64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.const 3440 - i32.load - call_indirect (type $6) - local.set $1 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.sub - local.set $0 - br $for-loop|014 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|015 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 local.get $0 - local.get $1 - i32.const 3472 - i32.load - call_indirect (type $17) - local.set $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6224 + i32.store offset=8 local.get $0 + i32.const 6224 + call $~lib/typedarray/Uint64Array#findLastIndex i32.const 1 - i32.sub - local.set $0 - br $for-loop|015 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|016 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6256 + i32.store offset=8 + local.get $0 + i32.const 6256 + call $~lib/typedarray/Uint64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i64.load - local.set $10 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 3504 - i32.load - call_indirect (type $17) - local.set $3 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.sub - local.set $0 - br $for-loop|016 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - f32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|017 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $4 - local.get $11 local.get $0 - local.get $1 - i32.const 3536 - i32.load - call_indirect (type $22) - local.set $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6288 + i32.store offset=8 local.get $0 + i32.const 6288 + call $~lib/typedarray/Float32Array#findLastIndex i32.const 1 - i32.sub - local.set $0 - br $for-loop|017 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - f32.const 6 - f32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - f64.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $12 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 6320 i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $12 - local.get $0 - local.get $1 - i32.const 3568 - i32.load - call_indirect (type $23) - local.set $5 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|018 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - f64.const 6 - f64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store offset=8 - local.get $0 - i32.const 4304 - call $~lib/typedarray/Int8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=8 - local.get $0 - i32.const 4336 - call $~lib/typedarray/Int8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=8 - local.get $0 - i32.const 4368 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=8 - local.get $0 - i32.const 4400 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4432 - i32.store offset=8 - local.get $0 - i32.const 4432 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=8 - local.get $0 - i32.const 4464 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store offset=8 - local.get $0 - i32.const 4496 - call $~lib/typedarray/Int16Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=8 - local.get $0 - i32.const 4528 - call $~lib/typedarray/Int16Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=8 - local.get $0 - i32.const 4560 - call $~lib/typedarray/Uint16Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 4592 - call $~lib/typedarray/Uint16Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store offset=8 - local.get $0 - i32.const 4624 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=8 - local.get $0 - i32.const 4656 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4688 - i32.store offset=8 - local.get $0 - i32.const 4688 - call $~lib/typedarray/Uint32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=8 - local.get $0 - i32.const 4720 - call $~lib/typedarray/Uint32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=8 - local.get $0 - i32.const 4752 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=8 - local.get $0 - i32.const 4784 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4816 - i32.store offset=8 - local.get $0 - i32.const 4816 - call $~lib/typedarray/Uint64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=8 - local.get $0 - i32.const 4848 - call $~lib/typedarray/Uint64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=8 - local.get $0 - i32.const 4880 - call $~lib/typedarray/Float32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=8 - local.get $0 - i32.const 4912 - call $~lib/typedarray/Float32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=8 - local.get $0 - i32.const 4944 - call $~lib/typedarray/Float64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - local.get $0 - i32.const 4976 - call $~lib/typedarray/Float64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5008 - i32.store offset=8 - local.get $0 - i32.const 5008 - call $~lib/typedarray/Int8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5040 - i32.store offset=8 - local.get $0 - i32.const 5040 - call $~lib/typedarray/Int8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=8 - local.get $0 - i32.const 5104 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=8 - local.get $0 - i32.const 5200 - call $~lib/typedarray/Int16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/typedarray/Int16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/typedarray/Uint16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/typedarray/Uint16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store offset=8 - local.get $0 - i32.const 5328 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=8 - local.get $0 - i32.const 5360 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=8 - local.get $0 - i32.const 5392 - call $~lib/typedarray/Uint32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5424 - i32.store offset=8 - local.get $0 - i32.const 5424 - call $~lib/typedarray/Uint32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store offset=8 - local.get $0 - i32.const 5456 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=8 - local.get $0 - i32.const 5488 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5520 - i32.store offset=8 - local.get $0 - i32.const 5520 - call $~lib/typedarray/Uint64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store offset=8 - local.get $0 - i32.const 5552 - call $~lib/typedarray/Uint64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5584 - i32.store offset=8 - local.get $0 - i32.const 5584 - call $~lib/typedarray/Float32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=8 - local.get $0 - i32.const 5616 - call $~lib/typedarray/Float32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 - local.get $0 - i32.const 5648 - call $~lib/typedarray/Float64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5680 - i32.store offset=8 - local.get $0 - i32.const 5680 - call $~lib/typedarray/Float64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5712 - i32.store offset=8 - local.get $0 - i32.const 5712 - call $~lib/typedarray/Int8Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5744 - i32.store offset=8 - local.get $0 - i32.const 5744 - call $~lib/typedarray/Int8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5776 - i32.store offset=8 - local.get $0 - i32.const 5776 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5808 - i32.store offset=8 - local.get $0 - i32.const 5808 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5840 - i32.store offset=8 - local.get $0 - i32.const 5840 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5872 - i32.store offset=8 - local.get $0 - i32.const 5872 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.store offset=8 - local.get $0 - i32.const 5904 - call $~lib/typedarray/Int16Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5936 - i32.store offset=8 - local.get $0 - i32.const 5936 - call $~lib/typedarray/Int16Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5968 - i32.store offset=8 - local.get $0 - i32.const 5968 - call $~lib/typedarray/Uint16Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6000 - i32.store offset=8 - local.get $0 - i32.const 6000 - call $~lib/typedarray/Uint16Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6032 - i32.store offset=8 - local.get $0 - i32.const 6032 - call $~lib/typedarray/Int32Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6064 - i32.store offset=8 - local.get $0 - i32.const 6064 - call $~lib/typedarray/Int32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6096 - i32.store offset=8 - local.get $0 - i32.const 6096 - call $~lib/typedarray/Uint32Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6128 - i32.store offset=8 - local.get $0 - i32.const 6128 - call $~lib/typedarray/Uint32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6160 - i32.store offset=8 - local.get $0 - i32.const 6160 - call $~lib/typedarray/Int64Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6192 - i32.store offset=8 - local.get $0 - i32.const 6192 - call $~lib/typedarray/Int64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6224 - i32.store offset=8 - local.get $0 - i32.const 6224 - call $~lib/typedarray/Uint64Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6256 - i32.store offset=8 - local.get $0 - i32.const 6256 - call $~lib/typedarray/Uint64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6288 - i32.store offset=8 - local.get $0 - i32.const 6288 - call $~lib/typedarray/Float32Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6320 - i32.store offset=8 - local.get $0 - i32.const 6320 - call $~lib/typedarray/Float32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6352 - i32.store offset=8 - local.get $0 - i32.const 6352 - call $~lib/typedarray/Float64Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6384 - i32.store offset=8 - local.get $0 - i32.const 6384 - call $~lib/typedarray/Float64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6416 - i32.store offset=8 - local.get $0 - i32.const 6416 - call $~lib/typedarray/Int8Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 - local.get $0 - i32.const 6448 - call $~lib/typedarray/Int8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6480 - i32.store offset=8 - local.get $0 - i32.const 6480 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store offset=8 - local.get $0 - i32.const 6512 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6544 - i32.store offset=8 - local.get $0 - i32.const 6544 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store offset=8 - local.get $0 - i32.const 6576 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=8 - local.get $0 - i32.const 6608 - call $~lib/typedarray/Int16Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=8 - local.get $0 - i32.const 6640 - call $~lib/typedarray/Int16Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6672 - i32.store offset=8 - local.get $0 - i32.const 6672 - call $~lib/typedarray/Uint16Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6704 - i32.store offset=8 - local.get $0 - i32.const 6704 - call $~lib/typedarray/Uint16Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6736 - i32.store offset=8 - local.get $0 - i32.const 6736 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6768 - i32.store offset=8 - local.get $0 - i32.const 6768 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store offset=8 - local.get $0 - i32.const 6800 - call $~lib/typedarray/Uint32Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store offset=8 - local.get $0 - i32.const 6832 - call $~lib/typedarray/Uint32Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6864 - i32.store offset=8 - local.get $0 - i32.const 6864 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store offset=8 - local.get $0 - i32.const 6896 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6928 - i32.store offset=8 - local.get $0 - i32.const 6928 - call $~lib/typedarray/Uint64Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store offset=8 - local.get $0 - i32.const 6960 - call $~lib/typedarray/Uint64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6992 - i32.store offset=8 - local.get $0 - i32.const 6992 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7024 - i32.store offset=8 - local.get $0 - i32.const 7024 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7056 - i32.store offset=8 - local.get $0 - i32.const 7056 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7088 - i32.store offset=8 - local.get $0 - i32.const 7088 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - loop $for-loop|019 - local.get $0 - local.get $7 - i32.lt_s - if local.get $0 - local.get $6 + i32.const 6320 + call $~lib/typedarray/Float32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load8_s - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 3 - global.set $~argumentsLength - local.get $8 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 7200 - i32.load - call_indirect (type $4) + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|019 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store offset=8 - local.get $0 - i32.const 7232 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7264 - i32.store offset=8 - local.get $0 - i32.const 7264 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - loop $for-loop|020 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 local.get $0 - local.get $1 - i32.const 7296 - i32.load - call_indirect (type $4) + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6352 + i32.store offset=8 local.get $0 + i32.const 6352 + call $~lib/typedarray/Float64Array#findLastIndex i32.const 1 - i32.add - local.set $0 - br $for-loop|020 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - loop $for-loop|021 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.shl + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store offset=8 + local.get $0 + i32.const 6384 + call $~lib/typedarray/Float64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load16_u - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 3 - global.set $~argumentsLength - local.get $8 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 7328 - i32.load - call_indirect (type $4) + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|021 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|022 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 + i32.const 6 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6416 i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 local.get $0 - local.get $1 - i32.const 7360 - i32.load - call_indirect (type $4) + i32.const 6416 + call $~lib/typedarray/Int8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|022 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|023 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=8 local.get $0 - i32.const 2 - i32.shl + i32.const 6448 + call $~lib/typedarray/Int8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.set $8 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 3 - global.set $~argumentsLength - local.get $8 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 7392 - i32.load - call_indirect (type $4) + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|023 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|024 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6480 i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 local.get $0 - local.get $1 - i32.const 7424 - i32.load - call_indirect (type $28) + i32.const 6480 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|024 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|025 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6512 + i32.store offset=8 local.get $0 - i32.const 3 - i32.shl + i32.const 6512 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i64.load - local.set $3 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 3 - global.set $~argumentsLength - local.get $3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 7456 - i32.load - call_indirect (type $28) + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|025 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7488 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7488 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|026 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6544 i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 local.get $0 - local.get $1 - i32.const 7488 - i32.load - call_indirect (type $33) + i32.const 6544 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|026 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7520 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7520 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|027 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=8 local.get $0 - i32.const 3 - i32.shl + i32.const 6576 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - f64.load - local.set $5 + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 + global.get $~lib/memory/__stack_pointer i32.const 3 - global.set $~argumentsLength - local.get $5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.const 7520 - i32.load - call_indirect (type $34) + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 - i32.add - local.set $0 - br $for-loop|027 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=84 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const nan:0x8000000000000 - i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 653 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|0 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $5 - local.get $5 - f64.ne - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 654 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=88 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f32.const nan:0x400000 - i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 659 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|01 + i32.store offset=4 local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.ne - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|01 - end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 660 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - if - i32.const 0 - i32.const 1568 - i32.const 737 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length - if - i32.const 0 - i32.const 1568 - i32.const 741 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 10928 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 10928 - i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store offset=8 - loop $for-loop|01 - local.get $0 - local.get $2 - i32.gt_s - if + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 10928 - i32.store offset=12 - local.get $1 - local.get $2 - i32.const 10928 - local.get $2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|01 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $6 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $6 - local.get $2 - local.get $7 - local.get $8 - local.get $1 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.gt_s - if + i32.const 6608 + i32.store offset=8 + local.get $0 + i32.const 6608 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.get $7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> - global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=100 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store offset=104 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store offset=108 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - i32.store offset=112 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 1 - i32.add - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 1 - i32.add - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 0 - local.set $2 - loop $for-loop|00 - local.get $2 - local.get $8 - i32.lt_s - if - local.get $2 - local.get $9 - i32.add - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $4 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 - local.get $1 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.const 8 - i32.add - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $7 - i32.const 0 - local.set $2 - loop $for-loop|01213 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.const 255 - local.get $7 - local.get $2 - i32.const 2 - i32.shl + i32.const 6640 + i32.store offset=8 + local.get $0 + i32.const 6640 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - i32.load - local.tee $8 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub - i32.const 31 - i32.shr_s - local.get $8 - i32.or - local.get $8 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|01213 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15280 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=116 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=120 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.lt_s - br_if $folding-inner17 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|02324 - local.get $0 - local.get $6 - i32.lt_s - if + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $7 - i32.add - i32.const 255 - local.get $8 + i32.store offset=4 local.get $0 + i32.const 0 i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $9 - i32.const 255 - i32.gt_u - select - i32.store8 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 local.get $0 i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=8 + local.get $0 + i32.const 6672 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=8 + local.get $0 + i32.const 6704 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add - local.set $0 - br $for-loop|02324 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 - local.get $1 - local.get $2 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15312 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" - block $folding-inner036 + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner036 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 + i32.const 0 i32.const 2 - i32.const 1 - call $~lib/typedarray/Int8Array#__set + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#__set + i32.const 6 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + i32.const 6736 + i32.store offset=8 + local.get $0 + i32.const 6736 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=8 + local.get $0 + i32.const 6768 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66228,7 +62278,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner036 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66236,193 +62286,251 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15344 + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15344 + i32.const 6800 i32.store offset=8 - local.get $1 - i32.const 15344 - call $~lib/typedarray/Int8Array#sort - local.set $1 + local.get $0 + i32.const 6800 + call $~lib/typedarray/Uint32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=8 + local.get $0 + i32.const 6832 + call $~lib/typedarray/Uint32Array#every + br_if $folding-inner13 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 2 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 4 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=8 + local.get $0 + i32.const 6864 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=8 + local.get $0 + i32.const 6896 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - i32.const 15376 - i32.store offset=12 - local.get $1 - i32.const 15376 - call $~lib/typedarray/Int8Array#sort - drop + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 2 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 4 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 6 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=8 + local.get $0 + i32.const 6928 + call $~lib/typedarray/Uint64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=8 + local.get $0 + i32.const 6960 + call $~lib/typedarray/Uint64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" - block $folding-inner037 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner037 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 2 - call $~lib/typedarray/Uint8Array#__set + f32.const 6 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + i32.const 6992 + i32.store offset=8 + local.get $0 + i32.const 6992 + call $~lib/typedarray/Float32Array#every + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=8 + local.get $0 + i32.const 7024 + call $~lib/typedarray/Float32Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66430,7 +62538,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner037 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66438,441 +62546,1576 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15408 + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=8 - local.get $1 - i32.const 15408 - call $~lib/typedarray/Uint8Array#sort - local.set $1 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7056 i32.store offset=8 + local.get $0 + i32.const 7056 + call $~lib/typedarray/Float64Array#every + i32.eqz + br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=8 + local.get $0 + i32.const 7088 + call $~lib/typedarray/Float64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>$25" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 885 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i32.const 1568 - i32.const 886 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + loop $for-loop|036 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $6 + i32.add + i32.load8_s + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $1 + i32.const 7200 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|036 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15440 - i32.store offset=12 - local.get $1 - i32.const 15440 - call $~lib/typedarray/Uint8Array#sort - drop + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get + i32.const 7152 + i32.store offset=8 + local.get $0 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 7232 + i32.store offset=8 + local.get $0 + i32.const 7232 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" - block $folding-inner038 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner038 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer i32.const 3 call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 + local.tee $0 i32.store + local.get $0 + global.set $std/typedarray/forEachSelf global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 1 + i32.const 7152 i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 0 + global.get $~lib/memory/__stack_pointer + i32.const 7264 + i32.store offset=8 + local.get $0 + i32.const 7264 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set + i32.ne + br_if $folding-inner21 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>$26" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|038 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $1 + i32.const 7296 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|038 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end i32.const 0 - global.set $~argumentsLength + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner038 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>$27" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|040 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $1 + i32.const 7328 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|040 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>$28" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|042 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $1 + i32.const 7360 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|042 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store offset=8 - local.get $1 - i32.const 15472 - call $~lib/typedarray/Uint8Array#sort - local.set $1 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>$29" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|044 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $0 + local.get $1 + i32.const 7392 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|044 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>$30" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 885 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i32.const 1568 - i32.const 886 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|046 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $0 + local.get $1 + i32.const 7424 + i32.load + call_indirect (type $28) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|046 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>$31" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 887 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15504 - i32.store offset=12 - local.get $1 - i32.const 15504 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i32.const 1568 - i32.const 889 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|048 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $3 + local.get $0 + local.get $1 + i32.const 7456 + i32.load + call_indirect (type $28) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|048 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end + i32.const 0 + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>$32" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 890 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 i32.const 0 - i32.const 1568 - i32.const 891 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|050 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $4 + local.get $0 + local.get $1 + i32.const 7488 + i32.load + call_indirect (type $33) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|050 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount i32.const 3 - call $~lib/builtins/abort - unreachable + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" - block $folding-inner039 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner039 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>$33" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|052 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength + local.get $5 + local.get $0 + local.get $1 + i32.const 7520 + i32.load + call_indirect (type $34) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|052 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + end + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner039 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15536 - i32.store + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=84 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15536 - i32.store offset=8 - local.get $1 - i32.const 15536 - call $~lib/typedarray/Int16Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 - i32.store offset=8 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 + f64.const nan:0x8000000000000 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 885 + i32.const 653 i32.const 3 call $~lib/builtins/abort unreachable @@ -66880,57 +64123,109 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.tee $6 + i32.eqz + local.get $6 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|0 + local.get $0 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $5 + local.get $5 + f64.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable end + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.eqz if i32.const 0 i32.const 1568 - i32.const 887 + i32.const 654 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=88 + global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15568 - i32.store offset=12 local.get $1 - i32.const 15568 - call $~lib/typedarray/Int16Array#sort - drop + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 + f32.const nan:0x400000 i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 i32.ne if i32.const 0 i32.const 1568 - i32.const 889 + i32.const 659 i32.const 3 call $~lib/builtins/abort unreachable @@ -66938,703 +64233,1730 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.tee $6 + i32.eqz + local.get $6 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|05 + local.get $0 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const 0 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.eqz if i32.const 0 i32.const 1568 - i32.const 890 + i32.const 660 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>$34" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 891 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add + i32.const 20 + i32.sub global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" - block $folding-inner040 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner040 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 20 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 - i32.const 2 + local.get $0 + i32.const 0 i32.const 1 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint8Array#join + local.set $1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner040 + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint8Array#join + local.set $1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.const 9616 i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15600 + i32.const 9616 i32.store offset=8 - local.get $1 - i32.const 15600 - call $~lib/typedarray/Uint16Array#sort - local.set $1 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>$35" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 885 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>$36" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 886 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>$37" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 887 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 i32.const 3 - call $~lib/builtins/abort - unreachable + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>$38" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + end global.get $~lib/memory/__stack_pointer - i32.const 15632 - i32.store offset=12 - local.get $1 - i32.const 15632 - call $~lib/typedarray/Uint16Array#sort - drop + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>$39" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>$40" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 889 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>$41" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 890 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Float32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $1 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner25 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>$42" + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 891 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/builtins/abort - unreachable + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $1 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner25 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" - block $folding-inner041 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner041 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - i32.const 0 + i32.const 2 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner041 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $0 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15664 - i32.store + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15664 - i32.store offset=8 - local.get $1 - i32.const 15664 - call $~lib/typedarray/Int32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne + local.get $0 + call $~lib/typedarray/Int8Array#get:length if i32.const 0 i32.const 1568 - i32.const 885 + i32.const 737 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15696 - i32.store offset=12 - local.get $1 - i32.const 15696 - call $~lib/typedarray/Int32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get + local.get $0 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length if i32.const 0 i32.const 1568 - i32.const 891 + i32.const 741 i32.const 3 call $~lib/builtins/abort unreachable end + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add + i32.const 24 + i32.sub global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" - block $folding-inner042 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner042 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.const 24 + memory.fill global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 + i32.const 10928 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 10928 i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|062 + local.get $0 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $2 + i32.const 10928 + local.get $2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|062 + end + end + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $1 + i32.load + local.tee $2 i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.set $6 local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $7 global.get $~lib/memory/__stack_pointer - local.set $0 + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $8 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=12 + local.get $6 + local.get $2 + local.get $7 + local.get $8 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - i32.const 0 + i32.const 1 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $6 + i32.store offset=20 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.get $7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner042 + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=100 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=104 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15728 - i32.store + f32.const 400 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + local.get $0 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 15728 - i32.store offset=8 - local.get $1 - i32.const 15728 - call $~lib/typedarray/Uint32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=8 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store offset=108 + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const -10 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 100 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 + local.get $6 i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i64.const 10 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 + local.get $6 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - i32.const 15760 - i32.store offset=12 - local.get $1 - i32.const 15760 - call $~lib/typedarray/Uint32Array#sort - drop + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store offset=112 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 + local.get $7 i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 300 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 + local.get $7 i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const -1 + call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" - block $folding-inner043 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner043 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Int64Array#__set + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 1 + i32.add + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $0 + i32.const 0 + local.set $2 + loop $for-loop|0663 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $2 + local.get $9 + i32.add + local.get $0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $4 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0663 + end + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.get $6 + i32.store offset=20 + local.get $1 + local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -67642,7 +65964,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner043 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67650,193 +65972,169 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15792 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15792 + local.get $7 i32.store offset=8 - local.get $1 - i32.const 15792 - call $~lib/typedarray/Int64Array#sort - local.set $1 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.const 8 + i32.add + i32.lt_s + br_if $folding-inner17 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=4 + i32.store offset=8 local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.load offset=4 + local.set $7 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable + local.set $2 + loop $for-loop|07 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.const 255 + local.get $7 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $8 + i32.sub + i32.const 31 + i32.shr_s + local.get $8 + i32.or + local.get $8 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|07 + end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15280 + call $~lib/rt/__newArray + local.set $0 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 local.get $1 - i32.store offset=4 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> global.get $~lib/memory/__stack_pointer - i32.const 15824 - i32.store offset=12 - local.get $1 - i32.const 15824 - call $~lib/typedarray/Int64Array#sort - drop + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=116 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 300 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" - block $folding-inner044 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner044 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store + i32.const -1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=120 + global.get $~lib/memory/__stack_pointer + local.get $2 i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 + local.get $2 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set + i32.const 100 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $2 i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set + local.get $2 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 0 - global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -67844,7 +66142,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner044 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -67852,154 +66150,2124 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 15856 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15856 + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=8 local.get $1 - i32.const 15856 - call $~lib/typedarray/Uint64Array#sort - local.set $1 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|0864 + local.get $0 + local.get $6 + i32.lt_s + if + local.get $0 + local.get $7 + i32.add + i32.const 255 + local.get $8 + local.get $0 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $9 + i32.const 255 + i32.gt_u + select + i32.store8 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0864 + end + end global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $1 + local.get $2 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15312 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + block $folding-inner02 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner02 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner02 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15344 + i32.store offset=8 + local.get $1 + i32.const 15344 + call $~lib/typedarray/Int8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15376 + i32.store offset=12 + local.get $1 + i32.const 15376 + call $~lib/typedarray/Int8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + block $folding-inner04 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner04 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner04 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15408 + i32.store offset=8 + local.get $1 + i32.const 15408 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15440 + i32.store offset=12 + local.get $1 + i32.const 15440 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + block $folding-inner06 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner06 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner06 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15472 + i32.store offset=8 + local.get $1 + i32.const 15472 + call $~lib/typedarray/Uint8Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15504 + i32.store offset=12 + local.get $1 + i32.const 15504 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + block $folding-inner08 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner08 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner08 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store offset=8 + local.get $1 + i32.const 15536 + call $~lib/typedarray/Int16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15568 + i32.store offset=12 + local.get $1 + i32.const 15568 + call $~lib/typedarray/Int16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + block $folding-inner010 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner010 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner010 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15600 + i32.store offset=8 + local.get $1 + i32.const 15600 + call $~lib/typedarray/Uint16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15632 + i32.store offset=12 + local.get $1 + i32.const 15632 + call $~lib/typedarray/Uint16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + block $folding-inner012 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner012 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner012 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15664 + i32.store offset=8 + local.get $1 + i32.const 15664 + call $~lib/typedarray/Int32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15696 + i32.store offset=12 + local.get $1 + i32.const 15696 + call $~lib/typedarray/Int32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 15888 - i32.store offset=12 - local.get $1 - i32.const 15888 - call $~lib/typedarray/Uint64Array#sort - drop + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + block $folding-inner014 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner014 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner014 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store offset=8 + local.get $1 + i32.const 15728 + call $~lib/typedarray/Uint32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15760 + i32.store offset=12 + local.get $1 + i32.const 15760 + call $~lib/typedarray/Uint32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + block $folding-inner016 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner016 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner016 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15792 + i32.store offset=8 + local.get $1 + i32.const 15792 + call $~lib/typedarray/Int64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15824 + i32.store offset=12 + local.get $1 + i32.const 15824 + call $~lib/typedarray/Int64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + block $folding-inner018 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner018 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner018 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15856 + i32.store offset=8 + local.get $1 + i32.const 15856 + call $~lib/typedarray/Uint64Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15888 + i32.store offset=12 + local.get $1 + i32.const 15888 + call $~lib/typedarray/Uint64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + block $folding-inner020 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner020 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner020 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store offset=8 + local.get $1 + i32.const 15920 + call $~lib/typedarray/Float32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15952 + i32.store offset=12 + local.get $1 + i32.const 15952 + call $~lib/typedarray/Float32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 16 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" - block $folding-inner045 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner045 + br_if $folding-inner19 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -68008,79 +68276,48 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - f32.const 1 - call $~lib/typedarray/Float32Array#__set + f64.const 1 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set + f64.const 2 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - f32.const 3 - call $~lib/typedarray/Float32Array#__set + f64.const 3 + call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner045 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store offset=8 - local.get $1 - i32.const 15920 - call $~lib/typedarray/Float32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 + call $~lib/typedarray/Float64Array#sort@varargs + local.tee $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne if i32.const 0 i32.const 1568 @@ -68090,13 +68327,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne if i32.const 0 i32.const 1568 @@ -68106,13 +68343,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne if i32.const 0 i32.const 1568 @@ -68122,23 +68359,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15952 + i32.const 15984 i32.store offset=12 - local.get $1 - i32.const 15952 - call $~lib/typedarray/Float32Array#sort + local.get $0 + i32.const 15984 + call $~lib/typedarray/Float64Array#sort drop global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne if i32.const 0 i32.const 1568 @@ -68148,13 +68385,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne if i32.const 0 i32.const 1568 @@ -68164,13 +68401,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne if i32.const 0 i32.const 1568 @@ -68183,291 +68420,126 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float64Array#sort@varargs - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 2 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15984 - i32.store offset=12 - local.get $0 - i32.const 15984 - call $~lib/typedarray/Float64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 2 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 49088 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|013 + i32.const 49088 + global.set $~lib/memory/__stack_pointer global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s if - call $~lib/rt/itcms/step - drop - br $while-continue|013 + loop $while-continue|010 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|010 + end + end end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if call $~lib/rt/itcms/step drop - br $while-continue|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 124 + i32.add + global.set $~lib/memory/__stack_pointer + return end + unreachable end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 124 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 0 + i32.const 1568 + i32.const 344 + i32.const 3 + call $~lib/builtins/abort + unreachable end i32.const 0 i32.const 1568 - i32.const 344 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 345 + i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 346 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 438 + i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 461 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 463 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 + i32.const 507 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 + i32.const 509 i32.const 3 call $~lib/builtins/abort unreachable end - i32.const 0 - i32.const 1568 - i32.const 509 - i32.const 3 - call $~lib/builtins/abort unreachable end i32.const 1360 diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index ef094cef9d..0283f96980 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -168,35 +168,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 224 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -422,20 +424,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -649,25 +653,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -685,26 +691,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1029,25 +1037,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1056,35 +1066,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1174,6 +1186,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1242,13 +1255,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1317,13 +1332,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1331,19 +1348,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1351,25 +1370,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1538,37 +1559,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1587,29 +1610,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2817,38 +2842,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -2990,29 +3017,31 @@ if local.get $i local.set $org - loop $while-continue|1 - local.get $i - local.get $len - i32.lt_u - if (result i32) - local.get $src - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $ch - i32.const 37 - i32.ne - else - i32.const 0 - end - if + block $while-break|1 + loop $while-continue|1 local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 + local.get $len + i32.lt_u + if (result i32) + local.get $src + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $ch + i32.const 37 + i32.ne + else + i32.const 0 + end + if + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 + end end end local.get $i @@ -3377,14 +3406,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -3430,6 +3461,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index 347d6527fd..ca212608dc 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -93,35 +93,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -347,20 +349,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -574,25 +578,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -610,26 +616,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -954,25 +962,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -981,35 +991,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1099,6 +1111,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1167,13 +1180,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1242,13 +1257,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1256,19 +1273,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1276,25 +1295,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1463,37 +1484,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1512,29 +1535,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2307,6 +2332,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index 6510f0aca7..d8f90bf52a 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -126,36 +126,40 @@ ) (func $switch/doSwitchFallThroughCase (param $n i32) (result i32) (local $1 i32) - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - br $case0|0 + block $break|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + br $case0|0 + end + i32.const 2 + return end - i32.const 2 - return end i32.const 1 return ) (func $switch/doSwitchFallThroughDefault (param $n i32) (result i32) (local $1 i32) - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 + block $break|0 + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case0|0 + br $case1|0 + end i32.const 1 - i32.eq - br_if $case0|0 - br $case1|0 + return end - i32.const 1 - return end i32.const 2 return diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index be867f2190..1a39692d48 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -16,6 +16,7 @@ (export "memory" (memory $0)) (start $~start) (func $tablebase/foo + nop ) (func $~lib/function/Function<%28%29=>void>#get:index (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 629dbcd62d..2bb91a52cd 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -187,38 +187,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 @@ -274,35 +276,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 256 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 256 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -528,20 +532,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -755,25 +761,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -791,26 +799,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1135,25 +1145,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1162,35 +1174,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1280,6 +1294,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1348,13 +1363,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1423,13 +1440,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1437,19 +1456,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1457,25 +1478,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1644,37 +1667,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1693,29 +1718,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2583,59 +2610,61 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - loop $while-continue|0 - local.get $num - i32.const 10000 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1020 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1020 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 + i32.ge_u + if + local.get $num + i32.const 10000 + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1020 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1020 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end end end local.get $num @@ -2712,35 +2741,37 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - loop $while-continue|0 - local.get $offset - i32.const 2 - i32.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $offset i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1440 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 + i32.ge_u + if + local.get $offset + i32.const 2 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1440 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 + end end end local.get $offset @@ -2794,40 +2825,44 @@ local.set $b i32.const 1 local.set $e - loop $while-continue|0 - local.get $num - local.get $b - i64.ge_u - if + block $while-break|0 + loop $while-continue|0 local.get $num local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 + i64.ge_u + if + local.get $num + local.get $b + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 + end end end - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if + block $while-break|1 + loop $while-continue|1 local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 + end end end local.get $e @@ -2995,441 +3030,454 @@ local.set $kappa local.get $sign local.set $len - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 + block $while-break|0 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 + end + local.get $p1 + i32.const 1000000000 + i32.div_u + local.set $d + local.get $p1 + i32.const 1000000000 + i32.rem_u + local.set $p1 + br $break|1 end local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 10 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 10 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 - i32.div_u local.set $d - local.get $p1 - i32.const 10 - i32.rem_u + i32.const 0 local.set $p1 br $break|1 end - local.get $p1 - local.set $d i32.const 0 - local.set $p1 + local.set $d br $break|1 end - i32.const 0 - local.set $d - br $break|1 - end - local.get $d - local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end - local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $buffer - local.set $buffer|19 local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 3824 + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u local.get $one_exp i64.extend_i32_s i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 - i32.const 1 - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u - local.set $digit - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + block $~lib/util/number/grisuRound|inlined.0 + local.get $buffer + local.set $buffer|19 + local.get $len + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 3824 + local.get $kappa + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - local.get $lastp - local.get $digit - i32.store16 - local.get $len - return - end - br $while-continue|0 - end - end - loop $while-continue|4 - i32.const 1 - if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 - i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 - local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 + block $while-break|3 + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit + i32.const 1 + i32.sub + local.set $digit + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 + end + end + end + local.get $lastp + local.get $digit + i32.store16 + end + local.get $len + return + end + br $while-continue|0 end - local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + end + end + block $while-break|4 + loop $while-continue|4 i32.const 1 - i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 3824 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u + local.get $p2 + i64.const 10 i64.mul - local.set $wp_w_frc - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 + local.set $p2 local.get $delta - local.set $delta|31 + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u - local.set $digit|36 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 3824 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u + i64.mul + local.set $wp_w_frc + block $~lib/util/number/grisuRound|inlined.1 + local.get $buffer + local.set $buffer|29 + local.get $len + local.set $len|30 + local.get $delta + local.set $delta|31 + local.get $p2 + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 + block $while-break|6 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 + i32.const 1 + i32.sub + local.set $digit|36 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 + end + end + end + local.get $lastp|35 + local.get $digit|36 + i32.store16 end + local.get $len + return end - local.get $lastp|35 - local.get $digit|36 - i32.store16 - local.get $len - return + br $while-continue|4 end - br $while-continue|4 end + unreachable end unreachable ) @@ -3654,20 +3702,22 @@ i32.const 1 i32.add local.set $decimals - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.1 + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|8 i32.const 45 i32.const 43 @@ -3733,20 +3783,22 @@ i32.const 1 i32.add local.set $decimals|19 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.2 + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut + end local.get $buffer|16 i32.const 45 i32.const 43 @@ -3930,111 +3982,115 @@ i32.sub local.set $exp end - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 + block $~lib/util/number/normalizedBoundaries|inlined.0 + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 + end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + end + block $~lib/util/number/getCachedPower|inlined.0 + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2952 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3648 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2952 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 3648 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4397,6 +4453,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -4413,25 +4470,27 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - loop $while-continue|0 - local.get $cur - local.get $end - i32.lt_u - if + block $while-break|0 + loop $while-continue|0 local.get $cur - i32.load - local.set $val - local.get $val + local.get $end + i32.lt_u if + local.get $cur + i32.load + local.set $val local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit + if + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 end end ) @@ -4973,6 +5032,12 @@ global.set $~lib/memory/__stack_pointer local.get $2 return + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 ) (func $templateliteral/test_string (local $a i32) @@ -6334,22 +6399,24 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut + block $~lib/util/number/utoa32_dec_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut + end else local.get $radix i32.const 16 @@ -6374,23 +6441,25 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut + block $~lib/util/number/utoa32_hex_core|inlined.0 + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut + end else local.get $value local.set $val32 diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index a2ded6a5ae..5039ce7ba9 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -3054,631 +3054,634 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 4 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=20 - i32.const 1056 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=12 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 5 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=20 - i32.const 1748 - i32.const 1056 - i32.store - i32.const 1744 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=20 - i32.const 1756 - i32.const 1088 - i32.store - i32.const 1744 - i32.const 1088 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 - i32.const 1744 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=12 - local.get $0 - i32.const 1792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store offset=4 - local.get $0 - i32.const 3616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - call $~lib/number/I32#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 - local.get $0 - i32.const 3648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 14 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/number/I32#toString - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/number/I32#toString - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3684 - local.get $0 - i32.store - i32.const 3680 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 3692 - local.get $1 - i32.store - i32.const 3680 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 - i32.const 3680 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=4 - local.get $0 - i32.const 3728 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 - local.get $0 - i32.const 4912 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - f64.const 2 - call $~lib/number/F64#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - local.get $0 - i32.const 4944 - call $~lib/string/String.__eq - i32.eqz - if + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - f64.const 1 - call $~lib/number/F64#toString - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - f64.const 2 - call $~lib/number/F64#toString - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4980 - local.get $0 - i32.store - i32.const 4976 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 4988 - local.get $1 - i32.store - i32.const 4976 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 - i32.const 4976 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5024 - i32.store offset=4 - local.get $0 - i32.const 5024 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=12 + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=20 + i32.const 1056 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=12 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=20 + i32.const 1748 + i32.const 1056 + i32.store + i32.const 1744 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=20 + i32.const 1756 + i32.const 1088 + i32.store + i32.const 1744 + i32.const 1088 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=20 + i32.const 1744 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1792 + i32.store offset=12 + local.get $0 + i32.const 1792 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 36 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $templateliteral/Ref#constructor - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $templateliteral/Ref#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=12 - local.get $1 - i32.const 5360 - call $~lib/string/String.__eq - i32.eqz - if + memory.fill + i32.const 1 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store offset=4 + local.get $0 + i32.const 3616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 2 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3648 + i32.store offset=4 + local.get $0 + i32.const 3648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/number/I32#toString + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/number/I32#toString + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 3684 + local.get $0 + i32.store + i32.const 3680 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 3692 + local.get $1 + i32.store + i32.const 3680 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=12 + i32.const 3680 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=4 + local.get $0 + i32.const 3728 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 - i32.const 51 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=24 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - call $templateliteral/Ref#toString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $1 - local.get $3 - call $~lib/string/String#concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=12 - local.get $1 - i32.const 5392 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 24 + memory.fill + f64.const 1 + call $~lib/number/F64#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 + local.get $0 + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/number/F64#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + f64.const 2 + call $~lib/number/F64#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + local.get $0 + i32.const 4944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + f64.const 1 + call $~lib/number/F64#toString + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + f64.const 2 + call $~lib/number/F64#toString + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 4980 + local.get $0 + i32.store + i32.const 4976 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 4988 + local.get $1 + i32.store + i32.const 4976 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=12 + i32.const 4976 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5024 + i32.store offset=4 + local.get $0 + i32.const 5024 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + call $templateliteral/test_fast_paths_string + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $templateliteral/Ref#toString - local.tee $1 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $templateliteral/Ref#toString - local.tee $0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5444 - local.get $1 - i32.store - i32.const 5440 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 5452 - local.get $0 - i32.store - i32.const 5440 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 - i32.const 5440 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=12 - local.get $0 - i32.const 5488 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 36 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $templateliteral/Ref#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=12 + local.get $1 + i32.const 5360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=24 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $templateliteral/Ref#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + local.get $1 + local.get $3 + call $~lib/string/String#concat + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=12 + local.get $1 + i32.const 5392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $templateliteral/Ref#toString + local.tee $1 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5444 + local.get $1 + i32.store + i32.const 5440 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + i32.const 5452 + local.get $0 + i32.store + i32.const 5440 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=20 + i32.const 5440 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=12 + local.get $0 + i32.const 5488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1120 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.const 0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 - call $templateliteral/RecursiveObject#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 - local.get $0 - i32.const 5648 - call $~lib/string/String.__eq - i32.eqz - if + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5552 i32.const 0 - i32.const 1120 - i32.const 118 - i32.const 3 - call $~lib/builtins/abort - unreachable + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + call $templateliteral/RecursiveObject#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=8 + local.get $0 + i32.const 5648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 118 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + unreachable end i32.const 38496 i32.const 38544 diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index c487003992..4e51d5449c 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -112,38 +112,40 @@ i32.store i32.const 0 local.set $i - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - local.get $max - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store offset=4 + block $while-break|0 + loop $while-continue|0 local.get $i + i32.const 1 + i32.add + local.tee $i local.get $max - i32.gt_s + i32.lt_s if global.get $~lib/memory/__stack_pointer - i32.const 192 - local.tee $c - i32.store offset=8 - i32.const 224 - i32.const 144 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable + i32.const 64 + local.tee $b + i32.store offset=4 + local.get $i + local.get $max + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 192 + local.tee $c + i32.store offset=8 + i32.const 224 + i32.const 144 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 272 + local.tee $d + i32.store offset=12 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 272 - local.tee $d - i32.store offset=12 - br $while-continue|0 end end global.get $~lib/memory/__stack_pointer @@ -205,35 +207,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 368 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 368 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -459,20 +463,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -686,25 +692,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -722,26 +730,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1066,25 +1076,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1093,35 +1105,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1211,6 +1225,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1279,13 +1294,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1354,13 +1371,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1368,19 +1387,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1388,25 +1409,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1575,37 +1598,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1624,29 +1649,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -1731,14 +1758,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -1823,6 +1852,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index 8fad062a65..065352223c 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -1222,11 +1222,11 @@ i32.const 0 i32.gt_s if - loop $while-continue|01 + loop $while-continue|05 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step - br $while-continue|01 + br $while-continue|05 end end end diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 9c6d493f68..3b6064b45f 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -103,38 +103,40 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index a91488290e..19bad3e1c9 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -142,44 +142,47 @@ end end end - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a - local.get $b - i32.ne + block $while-break|1 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b local.get $a local.get $b - i32.sub - return + i32.ne + if + local.get $a + local.get $b + i32.sub + return + end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 end end i32.const 0 return ) (func $start:typeof~anonymous|0 + nop ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -231,35 +234,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -485,20 +490,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -712,25 +719,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -748,26 +757,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1092,25 +1103,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1119,35 +1132,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1237,6 +1252,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1305,13 +1321,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1380,13 +1398,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1394,19 +1414,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1414,25 +1436,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1601,37 +1625,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|1 + loop $while-continue|1 local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1650,29 +1676,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2419,6 +2447,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/unicode-identifier.debug.wat b/tests/compiler/unicode-identifier.debug.wat index cf2105a944..7e69185a00 100644 --- a/tests/compiler/unicode-identifier.debug.wat +++ b/tests/compiler/unicode-identifier.debug.wat @@ -5,8 +5,8 @@ (memory $0 0) (table $0 1 1 funcref) (elem $0 (i32.const 1)) - (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) - (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) - (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unicode-identifier.release.wat b/tests/compiler/unicode-identifier.release.wat index f0072ed5f6..35ea64349a 100644 --- a/tests/compiler/unicode-identifier.release.wat +++ b/tests/compiler/unicode-identifier.release.wat @@ -3,8 +3,8 @@ (global $"unicode-identifier/\e5\8f\98\e9\87\8f" (mut i32) (i32.const 0)) (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1" (mut i32) (i32.const 0)) (memory $0 0) - (export "ÀÈ" (global $"unicode-identifier/\c3\80\c3\88")) - (export "变量" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) - (export "𠜎𠜱" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) + (export "\c3\80\c3\88" (global $"unicode-identifier/\c3\80\c3\88")) + (export "\e5\8f\98\e9\87\8f" (global $"unicode-identifier/\e5\8f\98\e9\87\8f")) + (export "\f0\a0\9c\8e\f0\a0\9c\b1" (global $"unicode-identifier/\f0\a0\9c\8e\f0\a0\9c\b1")) (export "memory" (memory $0)) ) diff --git a/tests/compiler/unify-local-flags.debug.wat b/tests/compiler/unify-local-flags.debug.wat index d7acc2209e..34394ca759 100644 --- a/tests/compiler/unify-local-flags.debug.wat +++ b/tests/compiler/unify-local-flags.debug.wat @@ -39,20 +39,22 @@ local.set $x i32.const 0 local.set $i - loop $while-continue|2 - local.get $i - i32.const 255 - i32.and - i32.const 255 - i32.lt_u - if + block $while-break|2 + loop $while-continue|2 local.get $i - local.set $x - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|2 + i32.const 255 + i32.and + i32.const 255 + i32.lt_u + if + local.get $i + local.set $x + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|2 + end end end ) diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index f7c2a8c485..35ea337ec7 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -50,18 +50,20 @@ local.set $i i32.const 0 local.set $j - loop $while-continue|0 - local.get $i - if + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 + if + local.get $i + i32.const 1 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 + end end end local.get $i @@ -101,56 +103,60 @@ local.set $j i32.const 0 local.set $k - loop $while-continue|0 - local.get $i - if + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j - loop $while-continue|1 + if local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $k - i32.const 1 - i32.add - local.set $k - br $while-continue|1 + i32.const 1 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $i + if + local.get $i + i32.const 1 + i32.sub + local.set $i + local.get $k + i32.const 1 + i32.add + local.set $k + br $while-continue|1 + end + end end - end - local.get $i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $k - i32.const 9 - i32.eq - i32.eqz - if + local.get $i i32.const 0 - i32.const 32 - i32.const 30 - i32.const 5 - call $~lib/builtins/abort - unreachable + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + br $while-continue|0 end - br $while-continue|0 end end local.get $i @@ -200,23 +206,26 @@ local.set $i i32.const 0 local.set $j - loop $while-continue|0 - local.get $i - local.tee $2 - i32.const 1 - i32.sub - local.set $i - local.get $2 - if (result i32) - local.get $j + block $while-break|0 + loop $while-continue|0 + local.get $i + local.tee $2 i32.const 1 - i32.add - local.tee $j - else - i32.const 0 - end - if - br $while-continue|0 + i32.sub + local.set $i + local.get $2 + if (result i32) + local.get $j + i32.const 1 + i32.add + local.tee $j + else + i32.const 0 + end + if + nop + br $while-continue|0 + end end end local.get $i @@ -286,21 +295,24 @@ (local $i i32) i32.const 0 local.set $i - loop $while-continue|0 - i32.const 1 - if - local.get $i + block $while-break|0 + loop $while-continue|0 i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq if local.get $i - return + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + local.get $i + return + end + br $while-continue|0 end - br $while-continue|0 end + unreachable end unreachable ) @@ -359,15 +371,17 @@ (local $i i32) i32.const 0 local.set $i - loop $while-continue|0 - local.get $i - i32.const 1 - i32.add - local.tee $i - if + block $while-break|0 + loop $while-continue|0 + local.get $i i32.const 1 - global.set $while/ran - return + i32.add + local.tee $i + if + i32.const 1 + global.set $while/ran + return + end end end i32.const 0 @@ -385,14 +399,16 @@ (local $i i32) i32.const 10 local.set $i - loop $while-continue|0 - local.get $i - if + block $while-break|0 + loop $while-continue|0 local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 + if + local.get $i + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 + end end end local.get $i @@ -417,24 +433,28 @@ local.set $i i32.const 10 local.set $j - loop $while-continue|0 - local.get $i - if - loop $while-continue|1 - local.get $j - if - local.get $j - i32.const 1 - i32.sub - local.set $j - br $while-continue|1 + block $while-break|0 + loop $while-continue|0 + local.get $i + if + block $while-break|1 + loop $while-continue|1 + local.get $j + if + local.get $j + i32.const 1 + i32.sub + local.set $j + br $while-continue|1 + end + end end + local.get $i + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 end - local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 end end local.get $i @@ -514,35 +534,37 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - loop $while-continue|0 - local.get $iter - local.get $pn - i32.ne - if - i32.const 1 - drop + block $while-break|0 + loop $while-continue|0 local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz + local.get $pn + i32.ne if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable + i32.const 1 + drop + local.get $iter + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 end end ) @@ -768,20 +790,22 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - loop $while-continue|0 - local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit + block $while-break|0 + loop $while-continue|0 local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 + global.get $~lib/memory/__heap_base + i32.lt_u + if + local.get $ptr + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 + end end end ) @@ -995,25 +1019,27 @@ end i32.eq if - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.1 + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $next i32.eqz if @@ -1031,26 +1057,28 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.1 + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 + end local.get $slMap i32.eqz if @@ -1375,25 +1403,27 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.2 + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 + end local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1402,35 +1432,37 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|26 - local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + block $~lib/rt/tlsf/SETSL|inlined.2 local.get $root - local.set $root|24 + local.set $root|26 local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) + local.get $root + local.set $root|24 + local.get $fl + local.set $fl|25 + local.get $root|24 + local.get $fl|25 + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 + end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 i32.const 2 i32.shl i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 + local.get $slMap + i32.store offset=4 end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1520,6 +1552,7 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else + nop end else i32.const 1 @@ -1588,13 +1621,15 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.1 + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 + end local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1663,13 +1698,15 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 + block $~lib/rt/tlsf/SETTAIL|inlined.0 + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 + end i32.const 0 local.set $fl loop $for-loop|0 @@ -1677,19 +1714,21 @@ i32.const 23 i32.lt_u if - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 + block $~lib/rt/tlsf/SETSL|inlined.0 + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 + end i32.const 0 local.set $sl loop $for-loop|1 @@ -1697,25 +1736,27 @@ i32.const 16 i32.lt_u if - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 + block $~lib/rt/tlsf/SETHEAD|inlined.0 + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 + end local.get $sl i32.const 1 i32.add @@ -1884,37 +1925,39 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|1 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if - local.get $obj - global.set $~lib/rt/itcms/iter + block $while-break|1 + loop $while-continue|1 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 end end i32.const 0 @@ -1933,29 +1976,31 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - loop $while-continue|2 - local.get $obj - global.get $~lib/rt/itcms/toSpace - i32.ne - if + block $while-break|2 + loop $while-continue|2 local.get $obj - call $~lib/rt/itcms/Object#get:color - local.get $black + global.get $~lib/rt/itcms/toSpace i32.ne if local.get $obj + call $~lib/rt/itcms/Object#get:color local.get $black - call $~lib/rt/itcms/Object#set:color + i32.ne + if + local.get $obj + local.get $black + call $~lib/rt/itcms/Object#set:color + local.get $obj + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + end local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end - local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2682,26 +2727,28 @@ call $while/Ref#constructor local.tee $ref i32.store - loop $while-continue|1 - local.get $ref - if - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq + block $while-break|1 + loop $while-continue|1 + local.get $ref if - i32.const 0 - local.set $ref - else - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $while/Ref#constructor - local.tee $ref - i32.store + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq + if + i32.const 0 + local.set $ref + else + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $while/Ref#constructor + local.tee $ref + i32.store + end + br $while-continue|1 end - br $while-continue|1 end end local.get $i @@ -2822,6 +2869,7 @@ i32.const 1 i32.lt_s if + nop else br $while-break|0 end @@ -2850,6 +2898,7 @@ if br $while-break|0 else + nop end br $while-continue|0 end @@ -2910,14 +2959,16 @@ end call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 + block $while-break|1 + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end end end global.get $~lib/rt/itcms/total @@ -3174,6 +3225,7 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) + nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index 57ed01f821..2457626fee 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1496,7 +1496,7 @@ local.set $0 i32.const 0 local.set $2 - loop $while-continue|02 + loop $while-continue|03 local.get $0 local.tee $1 i32.const 1 @@ -1511,7 +1511,7 @@ else i32.const 0 end - br_if $while-continue|02 + br_if $while-continue|03 end local.get $0 i32.const -1 @@ -1537,14 +1537,14 @@ end i32.const 0 local.set $0 - loop $while-continue|03 + loop $while-continue|05 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|03 + br_if $while-continue|05 end local.get $0 i32.const 10 @@ -1559,14 +1559,14 @@ end i32.const 0 local.set $0 - loop $while-continue|04 + loop $while-continue|07 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 10 i32.ne - br_if $while-continue|04 + br_if $while-continue|07 end local.get $0 i32.const 10 @@ -1581,14 +1581,14 @@ end i32.const 10 local.set $0 - loop $while-continue|07 + loop $while-continue|013 local.get $0 if local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|07 + br $while-continue|013 end end local.get $0 @@ -1604,24 +1604,24 @@ local.set $0 i32.const 10 local.set $1 - loop $while-continue|08 + loop $while-continue|015 local.get $0 if - loop $while-continue|110 + loop $while-continue|117 local.get $1 if local.get $1 i32.const 1 i32.sub local.set $1 - br $while-continue|110 + br $while-continue|117 end end local.get $0 i32.const 1 i32.sub local.set $0 - br $while-continue|08 + br $while-continue|015 end end local.get $0 @@ -1692,7 +1692,7 @@ call $while/Ref#constructor local.tee $0 i32.store - loop $while-continue|11 + loop $while-continue|15 local.get $0 if local.get $1 @@ -1710,7 +1710,7 @@ local.tee $0 i32.store end - br $while-continue|11 + br $while-continue|15 end end local.get $1 @@ -1754,10 +1754,10 @@ call $while/Ref#constructor local.tee $1 i32.store - loop $while-continue|09 + loop $while-continue|08 call $while/Ref#constructor if - block $while-break|08 + block $while-break|07 local.get $0 i32.const 1 i32.add @@ -1767,9 +1767,9 @@ if i32.const 0 local.set $1 - br $while-break|08 + br $while-break|07 end - br $while-continue|09 + br $while-continue|08 end end end @@ -1799,25 +1799,25 @@ global.set $~lib/memory/__stack_pointer i32.const 0 local.set $0 - loop $while-continue|0911 + loop $while-continue|019 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|0911 + br_if $while-continue|019 end i32.const 0 local.set $0 - loop $while-continue|010 + loop $while-continue|021 local.get $0 i32.const 1 i32.add local.tee $0 i32.const 0 i32.le_s - br_if $while-continue|010 + br_if $while-continue|021 end i32.const 0 local.set $0 @@ -1845,23 +1845,23 @@ i32.const 0 i32.gt_s if - loop $while-continue|011 + loop $while-continue|023 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|011 + br $while-continue|023 end end end call $~lib/rt/itcms/step drop - loop $while-continue|113 + loop $while-continue|125 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|113 + br $while-continue|125 end end global.get $~lib/rt/itcms/total From 41a697f1bb5b6e2bddb498c2aefd048c3f8e04f7 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 2 Jun 2025 19:06:48 -0700 Subject: [PATCH 2/3] Mark the module as closed-world when possible to allow DAE optimizations Due to WebAssembly/binaryen#7135, any function reference is treated as potentially leaked to the outside world, unless the module is marked as closed-world. This prevents DAE from taking place. To fix this, mark the module as closed-world when tables are neither imported nor exported and when exports do not return/contain funcrefs. --- src/compiler.ts | 10 +++++ src/module.ts | 8 ++++ tests/compiler/call-optional.release.wat | 2 +- tests/compiler/call-rest.release.wat | 38 +++++++++---------- tests/compiler/function-call.release.wat | 28 ++------------ .../compiler/function-expression.release.wat | 6 +-- tests/compiler/function-types.release.wat | 8 +--- tests/compiler/inlining.release.wat | 13 +------ tests/compiler/resolve-ternary.release.wat | 16 ++------ 9 files changed, 50 insertions(+), 79 deletions(-) diff --git a/src/compiler.ts b/src/compiler.ts index ccfa9db33d..29b73f2c69 100644 --- a/src/compiler.ts +++ b/src/compiler.ts @@ -536,6 +536,12 @@ export class Compiler extends DiagnosticEmitter { // initialize lookup maps, built-ins, imports, exports, etc. this.program.initialize(); + + // Binaryen treats all function references as being leaked to the outside world when + // the module isn't marked as closed-world (see WebAssembly/binaryen#7135). Therefore, + // we should mark the module as closed-world when we're definitely sure it is. + module.setClosedWorld(true); + // obtain the main start function let startFunctionInstance = this.currentFlow.targetFunction; assert(startFunctionInstance.internalName == BuiltinNames.start); @@ -857,6 +863,7 @@ export class Compiler extends DiagnosticEmitter { ImportNames.DefaultNamespace, ImportNames.Table ); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Importing_the_table_disables_some_indirect_call_optimizations, @@ -866,6 +873,7 @@ export class Compiler extends DiagnosticEmitter { } if (options.exportTable) { module.addTableExport(CommonNames.DefaultTable, ExportNames.Table); + module.setClosedWorld(false); if (options.pedantic && options.willOptimize) { this.pedantic( DiagnosticCode.Exporting_the_table_disables_some_indirect_call_optimizations, @@ -977,6 +985,7 @@ export class Compiler extends DiagnosticEmitter { } } } + if (functionInstance.signature.returnType.kind == TypeKind.Func) this.module.setClosedWorld(false); } return; } @@ -1007,6 +1016,7 @@ export class Compiler extends DiagnosticEmitter { this.desiresExportRuntime = true; } } + if (global.type.kind == TypeKind.Func) this.module.setClosedWorld(false); } if (global.type == Type.v128) { this.warning( diff --git a/src/module.ts b/src/module.ts index 63153f9b2d..c500124442 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2471,6 +2471,14 @@ export class Module { binaryen._BinaryenSetDebugInfo(on); } + getClosedWorld(): bool { + return binaryen._BinaryenGetClosedWorld(); + } + + setClosedWorld(on: bool): void { + binaryen._BinaryenSetClosedWorld(on); + } + getLowMemoryUnused(): bool { return binaryen._BinaryenGetLowMemoryUnused(); } diff --git a/tests/compiler/call-optional.release.wat b/tests/compiler/call-optional.release.wat index 9f3e396b8b..79b66938d4 100644 --- a/tests/compiler/call-optional.release.wat +++ b/tests/compiler/call-optional.release.wat @@ -31,8 +31,8 @@ i32.const -2 local.set $2 end - local.get $0 local.get $1 + i32.const 3 i32.add local.get $2 i32.add diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index d4045dcdd4..0d9c6213c5 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1,9 +1,9 @@ (module (type $0 (func (param i32 i32 i32) (result i32))) - (type $1 (func)) - (type $2 (func (param i32))) - (type $3 (func (param i32 i32))) - (type $4 (func (param i32 i32) (result i32))) + (type $1 (func (param i32 i32) (result i32))) + (type $2 (func)) + (type $3 (func (param i32))) + (type $4 (func (param i32 i32))) (type $5 (func (param i32) (result i32))) (type $6 (func (param i32 i32 i32 i32))) (type $7 (func (param i32 i32 i64))) @@ -1874,7 +1874,8 @@ global.set $~lib/memory/__stack_pointer local.get $0 ) - (func $call-rest/fn (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) + (local $2 i32) (local $3 i32) global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1895,35 +1896,33 @@ i32.const 0 i32.store local.get $0 - local.get $1 + i32.const 1 i32.add - local.set $1 - i32.const 0 local.set $0 global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store - local.get $2 + local.get $1 call $~lib/array/Array#get:length local.set $3 loop $for-loop|0 - local.get $0 + local.get $2 local.get $3 i32.lt_s if global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store + local.get $1 local.get $2 - local.get $0 call $~lib/array/Array#__get - local.get $1 - i32.add - local.set $1 local.get $0 - i32.const 1 i32.add local.set $0 + local.get $2 + i32.const 1 + i32.add + local.set $2 br $for-loop|0 end end @@ -1931,7 +1930,7 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 + local.get $0 ) (func $call-rest/fn@varargs (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1977,7 +1976,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 - local.get $0 local.get $1 local.get $2 call $call-rest/fn @@ -2587,7 +2585,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 1 i32.const 2 local.get $0 call $call-rest/fn @@ -2609,7 +2606,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - i32.const 1 i32.const 2 local.get $0 call $call-rest/fn diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 11ac883950..3c3adb890c 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -65,7 +65,7 @@ i32.add ) (func $start:function-call~fn2|4 (param $0 i32) (result i32) - local.get $0 + i32.const 1 ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -1412,9 +1412,7 @@ nop ) (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - local.get $1 - local.get $2 - i32.add + i32.const 3 ) (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 @@ -1533,16 +1531,7 @@ i32.const 1248 i32.load call_indirect (type $1) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 20 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop memory.size i32.const 16 i32.shl @@ -1641,16 +1630,7 @@ i32.const 1712 i32.load call_indirect (type $1) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1152 - i32.const 33 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + drop global.get $~lib/memory/__stack_pointer global.get $function-call/foo local.tee $0 diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index 69de206bad..d0b5083e9d 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -86,12 +86,10 @@ i32.const 1 ) (func $start:function-expression~anonymous|4 (param $0 i32) (param $1 i32) (result i32) - local.get $0 - local.get $1 - i32.add + i32.const 3 ) (func $start:function-expression~anonymous|5 (param $0 i32) (param $1 i32) (result i32) - local.get $0 + i32.const 1 ) (func $start:function-expression~anonymous|6 (param $0 i32) (param $1 i32) (result i32) i32.const 42 diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index f361123f2a..b0207d6d3e 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -28,14 +28,10 @@ i32.add ) (func $function-types/makeAdder~anonymous|0 (param $0 i64) (param $1 i64) (result i64) - local.get $0 - local.get $1 - i64.add + i64.const 30 ) (func $function-types/makeAdder~anonymous|0 (param $0 f64) (param $1 f64) (result f64) - local.get $0 - local.get $1 - f64.add + f64.const 4 ) (func $~start (local $0 i32) diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 3bbaa89926..67e09d9b8e 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -49,7 +49,7 @@ i32.const 3 ) (func $inlining/func_fe~anonymous|0 (param $0 i32) (result i32) - local.get $0 + i32.const 2 ) (func $~lib/rt/itcms/visitRoots (local $0 i32) @@ -1561,16 +1561,7 @@ i32.const 1104 i32.load call_indirect (type $2) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1056 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + drop global.get $~lib/memory/__stack_pointer i32.const 123 i32.store diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 22d3d98a80..47c3b86c7c 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -2418,24 +2418,16 @@ end ) (func $start:resolve-ternary~anonymous|0 (param $0 i32) (result i32) - local.get $0 - i32.const 1 - i32.add + i32.const 2 ) (func $start:resolve-ternary~anonymous|1 (param $0 i32) (result i32) - local.get $0 - i32.const 2 - i32.add + i32.const 3 ) (func $resolve-ternary/g1 (param $0 i32) (result i32) - local.get $0 - i32.const 3 - i32.add + i32.const 4 ) (func $resolve-ternary/g2 (param $0 i32) (result i32) - local.get $0 - i32.const 4 - i32.add + i32.const 5 ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid From 5d36dabc9bc32d49f0806cc8398162e110491bb6 Mon Sep 17 00:00:00 2001 From: CountBleck Date: Mon, 2 Jun 2025 19:53:13 -0700 Subject: [PATCH 3/3] Enable StackIR optimizations in release mode and for generating WAT In WebAssembly/binaryen#6568, StackIR was changed from a set of passes to a global option. This meant that the `true` argument passed into _BinaryenModuleAllocateAndWriteStackIR (to optimize the StackIR) no longer had an effect. This commit restores that and also runs the optimizations under the same {optimize,shrink}Levels as wasm-opt. --- cli/index.js | 3 +- src/module.ts | 21 + tests/compiler/NonNullable.debug.wat | 58 +- tests/compiler/NonNullable.release.wat | 2 - tests/compiler/assert-nonnull.release.wat | 13 - tests/compiler/assignment-chain.debug.wat | 438 +- tests/compiler/assignment-chain.release.wat | 6 - tests/compiler/binary.debug.wat | 134 +- tests/compiler/bindings/esm.debug.wat | 489 +- tests/compiler/bindings/esm.release.wat | 1916 +- .../bindings/noExportRuntime.debug.wat | 472 +- .../bindings/noExportRuntime.release.wat | 25 +- tests/compiler/bindings/raw.debug.wat | 489 +- tests/compiler/bindings/raw.release.wat | 1916 +- tests/compiler/builtins.debug.wat | 61 +- tests/compiler/builtins.release.wat | 2 - tests/compiler/call-inferred.debug.wat | 438 +- tests/compiler/call-inferred.release.wat | 4 - tests/compiler/call-rest.debug.wat | 470 +- tests/compiler/call-rest.release.wat | 16 - tests/compiler/call-super.debug.wat | 438 +- tests/compiler/call-super.release.wat | 22 - tests/compiler/class-implements.debug.wat | 438 +- tests/compiler/class-implements.release.wat | 16 - .../compiler/class-overloading-cast.debug.wat | 496 +- .../class-overloading-cast.release.wat | 10 - tests/compiler/class-overloading.debug.wat | 496 +- tests/compiler/class-overloading.release.wat | 2327 +- tests/compiler/class-override.debug.wat | 438 +- tests/compiler/class-override.release.wat | 10 - tests/compiler/class.debug.wat | 438 +- tests/compiler/class.release.wat | 4 - tests/compiler/comma.debug.wat | 1 - tests/compiler/constructor.debug.wat | 438 +- tests/compiler/constructor.release.wat | 2 - tests/compiler/converge.debug.wat | 1 - tests/compiler/converge.release.wat | 1 - tests/compiler/do.debug.wat | 457 +- tests/compiler/do.release.wat | 4 - tests/compiler/duplicate-fields.debug.wat | 438 +- tests/compiler/duplicate-fields.release.wat | 10 - tests/compiler/empty-exportruntime.debug.wat | 456 +- .../compiler/empty-exportruntime.release.wat | 2 - tests/compiler/empty-new.debug.wat | 438 +- tests/compiler/empty-new.release.wat | 2 - tests/compiler/export-default.debug.wat | 1 - tests/compiler/export-default.release.wat | 1 - tests/compiler/exportimport-table.debug.wat | 1 - tests/compiler/exportimport-table.release.wat | 1 - tests/compiler/exports-lazy.debug.wat | 2 - .../compiler/exportstar-rereexport.debug.wat | 439 +- .../exportstar-rereexport.release.wat | 5 - .../compiler/extends-baseaggregate.debug.wat | 502 +- .../extends-baseaggregate.release.wat | 622 +- tests/compiler/extends-recursive.debug.wat | 438 +- tests/compiler/extends-recursive.release.wat | 27 +- tests/compiler/features/gc.release.wat | 1 - .../features/reference-types.debug.wat | 3 - .../features/reference-types.release.wat | 1 - tests/compiler/field-initialization.debug.wat | 620 +- .../compiler/field-initialization.release.wat | 83 +- tests/compiler/field.debug.wat | 489 +- tests/compiler/field.release.wat | 29 +- tests/compiler/for.debug.wat | 457 +- tests/compiler/for.release.wat | 4 - tests/compiler/function-call.debug.wat | 441 +- tests/compiler/function-call.release.wat | 6 - tests/compiler/function-expression.debug.wat | 439 +- .../compiler/function-expression.release.wat | 759 +- tests/compiler/function-types.release.wat | 2 - tests/compiler/getter-call.debug.wat | 438 +- tests/compiler/getter-call.release.wat | 6 - tests/compiler/heap.debug.wat | 271 +- tests/compiler/heap.release.wat | 2 - tests/compiler/import.debug.wat | 2 - .../incremental-gc/call-indirect.debug.wat | 456 +- .../incremental-gc/call-indirect.release.wat | 8 - tests/compiler/infer-array.debug.wat | 534 +- tests/compiler/infer-array.release.wat | 16 - tests/compiler/infer-generic.debug.wat | 438 +- tests/compiler/infer-generic.release.wat | 6 - tests/compiler/inlining-blocklocals.debug.wat | 52 +- tests/compiler/inlining-recursive.debug.wat | 4 +- tests/compiler/inlining.debug.wat | 604 +- tests/compiler/inlining.release.wat | 6 - tests/compiler/instanceof.debug.wat | 440 +- tests/compiler/instanceof.release.wat | 6 - tests/compiler/issues/1095.debug.wat | 438 +- tests/compiler/issues/1095.release.wat | 25 +- tests/compiler/issues/1225.debug.wat | 456 +- tests/compiler/issues/1225.release.wat | 6 - tests/compiler/issues/1699.debug.wat | 470 +- tests/compiler/issues/1699.release.wat | 427 +- tests/compiler/issues/1714.debug.wat | 58 +- tests/compiler/issues/2166.debug.wat | 496 +- tests/compiler/issues/2166.release.wat | 6 - tests/compiler/issues/2322/index.debug.wat | 439 +- tests/compiler/issues/2322/index.release.wat | 4 - tests/compiler/issues/2622.debug.wat | 438 +- tests/compiler/issues/2622.release.wat | 2 - tests/compiler/issues/2707.debug.wat | 438 +- tests/compiler/issues/2707.release.wat | 4 - tests/compiler/issues/2873.debug.wat | 1553 +- tests/compiler/issues/2873.release.wat | 2 - tests/compiler/localinit.debug.wat | 34 +- tests/compiler/logical.debug.wat | 438 +- tests/compiler/logical.release.wat | 2 - tests/compiler/managed-cast.debug.wat | 458 +- tests/compiler/managed-cast.release.wat | 12 - tests/compiler/memcpy.debug.wat | 494 +- tests/compiler/memmove.debug.wat | 232 +- tests/compiler/memory.release.wat | 10 - tests/compiler/memset.debug.wat | 62 +- tests/compiler/merge.debug.wat | 16 - tests/compiler/new.debug.wat | 438 +- tests/compiler/new.release.wat | 2 - tests/compiler/nontrapping-f2i.release.wat | 1 - tests/compiler/object-literal.debug.wat | 514 +- tests/compiler/object-literal.release.wat | 1625 +- .../operator-overload-non-ambiguity.debug.wat | 438 +- ...perator-overload-non-ambiguity.release.wat | 2 - .../optional-typeparameters.debug.wat | 470 +- .../optional-typeparameters.release.wat | 2 - tests/compiler/possibly-null.debug.wat | 52 +- tests/compiler/reexport.debug.wat | 439 +- tests/compiler/reexport.release.wat | 5 - tests/compiler/rereexport.debug.wat | 439 +- tests/compiler/rereexport.release.wat | 5 - tests/compiler/resolve-access.debug.wat | 1012 +- tests/compiler/resolve-access.release.wat | 253 +- tests/compiler/resolve-binary.debug.wat | 1775 +- tests/compiler/resolve-binary.release.wat | 2 - .../compiler/resolve-elementaccess.debug.wat | 1733 +- .../resolve-elementaccess.release.wat | 8 - .../resolve-function-expression.debug.wat | 788 +- .../resolve-function-expression.release.wat | 4 - tests/compiler/resolve-nested.debug.wat | 1 - tests/compiler/resolve-new.debug.wat | 439 +- tests/compiler/resolve-new.release.wat | 4 - .../compiler/resolve-propertyaccess.debug.wat | 788 +- .../resolve-propertyaccess.release.wat | 6 - tests/compiler/resolve-ternary.debug.wat | 1759 +- tests/compiler/resolve-ternary.release.wat | 541 +- tests/compiler/resolve-unary.debug.wat | 790 +- tests/compiler/resolve-unary.release.wat | 2 - tests/compiler/return-unreachable.debug.wat | 438 +- tests/compiler/return-unreachable.release.wat | 4 - tests/compiler/return.debug.wat | 1 - tests/compiler/return.release.wat | 2 - .../compiler/rt/alloc-large-memory.debug.wat | 295 +- tests/compiler/rt/finalize.debug.wat | 456 +- tests/compiler/rt/finalize.release.wat | 4 - tests/compiler/rt/issue-2719.debug.wat | 456 +- tests/compiler/rt/issue-2719.release.wat | 4 - .../rt/runtime-incremental-export.debug.wat | 456 +- .../rt/runtime-incremental-export.release.wat | 2 - .../rt/runtime-minimal-export.debug.wat | 464 +- .../rt/runtime-minimal-export.release.wat | 4 - .../compiler/rt/runtime-stub-export.debug.wat | 2 - .../rt/runtime-stub-export.release.wat | 4 - tests/compiler/scoped.debug.wat | 1 - tests/compiler/simd.debug.wat | 438 +- tests/compiler/simd.release.wat | 8 - tests/compiler/std/array-access.debug.wat | 58 +- tests/compiler/std/array-access.release.wat | 13 - tests/compiler/std/array-literal.debug.wat | 521 +- tests/compiler/std/array-literal.release.wat | 10 - tests/compiler/std/array.debug.wat | 9553 +++--- tests/compiler/std/array.release.wat | 609 +- tests/compiler/std/arraybuffer.debug.wat | 456 +- tests/compiler/std/arraybuffer.release.wat | 1181 +- tests/compiler/std/dataview.debug.wat | 456 +- tests/compiler/std/dataview.release.wat | 4298 ++- tests/compiler/std/date.debug.wat | 1104 +- tests/compiler/std/date.release.wat | 36 - tests/compiler/std/hash.debug.wat | 504 +- tests/compiler/std/map.debug.wat | 3694 +-- tests/compiler/std/map.release.wat | 24383 +++++++------- tests/compiler/std/math.debug.wat | 280 +- tests/compiler/std/math.release.wat | 12 - tests/compiler/std/mod.debug.wat | 100 +- tests/compiler/std/new.debug.wat | 438 +- tests/compiler/std/new.release.wat | 2 - tests/compiler/std/object.debug.wat | 58 +- .../std/operator-overloading.debug.wat | 530 +- .../std/operator-overloading.release.wat | 174 - tests/compiler/std/pointer.debug.wat | 154 +- tests/compiler/std/set.debug.wat | 2076 +- tests/compiler/std/set.release.wat | 9598 +++--- tests/compiler/std/static-array.debug.wat | 438 +- tests/compiler/std/static-array.release.wat | 12 - tests/compiler/std/staticarray.debug.wat | 1652 +- tests/compiler/std/staticarray.release.wat | 503 +- .../compiler/std/string-casemapping.debug.wat | 1574 +- .../std/string-casemapping.release.wat | 6 - tests/compiler/std/string-encoding.debug.wat | 886 +- .../compiler/std/string-encoding.release.wat | 1865 +- tests/compiler/std/string-nonnull.debug.wat | 61 +- tests/compiler/std/string-nonnull.release.wat | 4 - tests/compiler/std/string.debug.wat | 3175 +- tests/compiler/std/string.release.wat | 46 - tests/compiler/std/symbol.debug.wat | 1262 +- tests/compiler/std/symbol.release.wat | 26 - tests/compiler/std/typedarray.debug.wat | 26235 ++++++++------- tests/compiler/std/typedarray.release.wat | 27554 ++++++++-------- tests/compiler/std/uri.debug.wat | 560 +- tests/compiler/std/uri.release.wat | 10 - tests/compiler/super-inline.debug.wat | 438 +- tests/compiler/super-inline.release.wat | 4 - tests/compiler/switch.debug.wat | 46 +- tests/compiler/tablebase.debug.wat | 1 - tests/compiler/templateliteral.debug.wat | 1783 +- tests/compiler/templateliteral.release.wat | 1247 +- tests/compiler/throw.debug.wat | 512 +- tests/compiler/throw.release.wat | 4 - tests/compiler/typealias.debug.wat | 58 +- tests/compiler/typeof.debug.wat | 497 +- tests/compiler/typeof.release.wat | 4 - tests/compiler/unify-local-flags.debug.wat | 28 +- tests/compiler/while.debug.wat | 742 +- tests/compiler/while.release.wat | 4 - 221 files changed, 86421 insertions(+), 92528 deletions(-) diff --git a/cli/index.js b/cli/index.js index 9899f4be3f..d6808957f4 100644 --- a/cli/index.js +++ b/cli/index.js @@ -945,9 +945,10 @@ export async function main(argv, options) { try { // use superset text format when extension is `.wast`. // Otherwise use official stack IR format (wat). + binaryen.setOptimizeStackIR(true); out = opts.textFile?.endsWith(".wast") ? binaryenModule.emitText() - : binaryenModule.emitStackIR(true); + : binaryenModule.emitStackIR(); } catch (e) { crash("emitText", e); } diff --git a/src/module.ts b/src/module.ts index c500124442..c6eb00b579 100644 --- a/src/module.ts +++ b/src/module.ts @@ -2503,6 +2503,22 @@ export class Module { binaryen._BinaryenSetFastMath(on); } + getGenerateStackIR(): bool { + return binaryen._BinaryenGetGenerateStackIR(); + } + + setGenerateStackIR(on: bool): void { + binaryen._BinaryenSetGenerateStackIR(on); + } + + getOptimizeStackIR(): bool { + return binaryen._BinaryenGetOptimizeStackIR(); + } + + setOptimizeStackIR(on: bool): void { + binaryen._BinaryenSetOptimizeStackIR(on); + } + getPassArgument(key: string): string | null { let cStr = this.allocStringCached(key); let ptr = binaryen._BinaryenGetPassArgument(cStr); @@ -2594,6 +2610,11 @@ export class Module { this.setFastMath(true); this.clearPassArguments(); + // OptimizationOptions#parse in src/tools/optimization-options.h + const stackIR = optimizeLevel >= 2 || shrinkLevel >= 1; + this.setGenerateStackIR(stackIR); + this.setOptimizeStackIR(stackIR); + // Tweak inlining limits based on optimization levels if (optimizeLevel >= 2 && shrinkLevel == 0) { this.setAlwaysInlineMaxSize(12); diff --git a/tests/compiler/NonNullable.debug.wat b/tests/compiler/NonNullable.debug.wat index 047c6ec389..5620f0ae0b 100644 --- a/tests/compiler/NonNullable.debug.wat +++ b/tests/compiler/NonNullable.debug.wat @@ -105,40 +105,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/NonNullable.release.wat b/tests/compiler/NonNullable.release.wat index 4fc5bbd20c..8a503aa3f3 100644 --- a/tests/compiler/NonNullable.release.wat +++ b/tests/compiler/NonNullable.release.wat @@ -330,12 +330,10 @@ i32.const 0 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $NonNullable/assertNonNull<~lib/string/String> global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/assert-nonnull.release.wat b/tests/compiler/assert-nonnull.release.wat index 753e1c59a8..67f4405bc2 100644 --- a/tests/compiler/assert-nonnull.release.wat +++ b/tests/compiler/assert-nonnull.release.wat @@ -174,7 +174,6 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -183,7 +182,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34256 @@ -453,7 +451,6 @@ i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -468,7 +465,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load local.tee $0 @@ -535,7 +531,6 @@ i32.eqz br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -550,7 +545,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load local.tee $0 @@ -623,7 +617,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -662,7 +655,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 i32.eqz if @@ -673,13 +665,11 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=4 local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -723,7 +713,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -785,7 +774,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 @@ -837,7 +825,6 @@ local.get $0 i32.load call_indirect (type $1) - drop unreachable end i32.const 34256 diff --git a/tests/compiler/assignment-chain.debug.wat b/tests/compiler/assignment-chain.debug.wat index f59c4dfae8..84f831ff37 100644 --- a/tests/compiler/assignment-chain.debug.wat +++ b/tests/compiler/assignment-chain.debug.wat @@ -100,37 +100,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -356,22 +354,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -585,27 +581,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -623,28 +617,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -969,27 +961,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -998,37 +988,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1118,7 +1106,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1187,15 +1174,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1264,15 +1249,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1280,21 +1263,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1302,27 +1283,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1491,39 +1470,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1542,31 +1519,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2382,7 +2357,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/assignment-chain.release.wat b/tests/compiler/assignment-chain.release.wat index 1af7a549b8..d4610178d1 100644 --- a/tests/compiler/assignment-chain.release.wat +++ b/tests/compiler/assignment-chain.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1641,7 +1639,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1683,7 +1680,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -1772,7 +1768,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1820,7 +1815,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/binary.debug.wat b/tests/compiler/binary.debug.wat index 889440048a..2925b7cf9f 100644 --- a/tests/compiler/binary.debug.wat +++ b/tests/compiler/binary.debug.wat @@ -214,29 +214,27 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + if local.get $e + i32.const 1 + i32.and if - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x + local.get $out local.get $x i32.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -1438,40 +1436,38 @@ i32.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s + if + local.get $ux + local.get $uy + i32.ge_u if local.get $ux local.get $uy - i32.ge_u + i32.eq if - local.get $ux - local.get $uy - i32.eq - if - f32.const 0 - local.get $x - f32.mul - return - end - local.get $ux - local.get $uy - i32.sub - local.set $ux + f32.const 0 + local.get $x + f32.mul + return end local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 + local.get $uy i32.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i32.const 1 + i32.shl + local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -2357,40 +2353,38 @@ i64.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s + if + local.get $ux + local.get $uy + i64.ge_u if local.get $ux local.get $uy - i64.ge_u + i64.eq if - local.get $ux - local.get $uy - i64.eq - if - f64.const 0 - local.get $x - f64.mul - return - end - local.get $ux - local.get $uy - i64.sub - local.set $ux + f64.const 0 + local.get $x + f64.mul + return end local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 + local.get $uy i64.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i64.const 1 + i64.shl + local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end end local.get $ux diff --git a/tests/compiler/bindings/esm.debug.wat b/tests/compiler/bindings/esm.debug.wat index da749ddf9e..cebadb0ee0 100644 --- a/tests/compiler/bindings/esm.debug.wat +++ b/tests/compiler/bindings/esm.debug.wat @@ -123,7 +123,6 @@ (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 - nop ) (func $bindings/esm/plainFunction (param $a i32) (param $b i32) (result i32) local.get $a @@ -206,37 +205,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -462,22 +459,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -691,27 +686,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -729,28 +722,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1075,27 +1066,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1104,37 +1093,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1224,7 +1211,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1293,15 +1279,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1370,15 +1354,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1386,21 +1368,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1408,27 +1388,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1597,39 +1575,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1648,31 +1624,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2832,16 +2806,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2910,7 +2882,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -5422,27 +5393,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/esm.release.wat b/tests/compiler/bindings/esm.release.wat index ab17ddb86a..a06cd5b88d 100644 --- a/tests/compiler/bindings/esm.release.wat +++ b/tests/compiler/bindings/esm.release.wat @@ -1152,7 +1152,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +1184,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2296,12 +2294,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2329,12 +2325,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) global.get $~lib/memory/__stack_pointer @@ -2400,325 +2394,318 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 - call $~lib/typedarray/Int16Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 i32.const 3 - i32.shl - local.tee $7 - i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - br $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 + br $folding-inner1 + end + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int16Array#get:length + i32.store local.get $3 - i32.gt_s + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - i32.const 0 - local.set $3 - loop $for-loop|1 + end + i32.const 0 + local.set $3 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/typedarray/Float32Array#get:length + i32.store local.get $3 - i32.gt_s + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end i32.const 35072 i32.const 35120 @@ -2771,12 +2758,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -2855,12 +2840,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2906,12 +2889,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -3280,7 +3261,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3332,7 +3312,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=4 local.get $5 @@ -3388,12 +3367,10 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3450,7 +3427,6 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3459,7 +3435,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3494,12 +3469,10 @@ local.get $0 local.get $1 call $bindings/esm/typedarrayFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3537,7 +3510,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3547,11 +3519,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $1 i32.const 20 i32.sub @@ -3594,7 +3564,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=4 loop $for-loop|0 @@ -3684,12 +3653,10 @@ end br $folding-inner1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3735,236 +3702,231 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $6 - local.get $4 + local.get $0 i32.store - local.get $6 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=8 + local.get $6 + local.get $3 local.get $1 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 35072 i32.const 35120 @@ -3984,246 +3946,241 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $5 + local.get $3 + i32.store + local.get $5 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u + local.get $2 + i32.gt_s if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=12 local.get $1 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end i32.const 35072 i32.const 35120 @@ -4240,251 +4197,246 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 + i32.const 0 + i32.const 0 call $~lib/rt/itcms/__new local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=64 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - br $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + br $folding-inner1 end - unreachable + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end i32.const 35072 i32.const 35120 diff --git a/tests/compiler/bindings/noExportRuntime.debug.wat b/tests/compiler/bindings/noExportRuntime.debug.wat index dec95d83bd..25e76de235 100644 --- a/tests/compiler/bindings/noExportRuntime.debug.wat +++ b/tests/compiler/bindings/noExportRuntime.debug.wat @@ -121,37 +121,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -377,22 +375,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -606,27 +602,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -644,28 +638,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -990,27 +982,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1019,37 +1009,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1139,7 +1127,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1208,15 +1195,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1285,15 +1270,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1301,21 +1284,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1323,27 +1304,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1512,39 +1491,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1563,31 +1540,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2437,10 +2412,8 @@ return ) (func $bindings/noExportRuntime/takesNonPlainObject (param $obj i32) - nop ) (func $bindings/noExportRuntime/takesFunction (param $fn i32) - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2504,7 +2477,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/typedarray/Int32Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -2823,27 +2795,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/noExportRuntime.release.wat b/tests/compiler/bindings/noExportRuntime.release.wat index 78fe58c136..d26dcae561 100644 --- a/tests/compiler/bindings/noExportRuntime.release.wat +++ b/tests/compiler/bindings/noExportRuntime.release.wat @@ -1085,7 +1085,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1118,7 +1117,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1666,23 +1664,20 @@ block $bindings/noExportRuntime/NonPlainObject block $~lib/array/Array<~lib/array/Array> block $~lib/array/Array - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array $~lib/array/Array<~lib/array/Array> $bindings/noExportRuntime/NonPlainObject $invalid end return end return end - unreachable + return end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -1861,7 +1856,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1938,7 +1932,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/bindings/raw.debug.wat b/tests/compiler/bindings/raw.debug.wat index cdfb690794..7bf955aa6b 100644 --- a/tests/compiler/bindings/raw.debug.wat +++ b/tests/compiler/bindings/raw.debug.wat @@ -123,7 +123,6 @@ (export "internrefFunction" (func $export:bindings/esm/internrefFunction)) (export "functionFunction" (func $export:bindings/esm/functionFunction)) (func $start:bindings/esm~anonymous|0 - nop ) (func $start:bindings/raw call $start:bindings/esm @@ -209,37 +208,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -465,22 +462,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -694,27 +689,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -732,28 +725,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1078,27 +1069,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1107,37 +1096,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1227,7 +1214,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1296,15 +1282,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1373,15 +1357,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1389,21 +1371,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1411,27 +1391,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1600,39 +1578,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1651,31 +1627,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2835,16 +2809,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2913,7 +2885,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -5425,27 +5396,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/bindings/raw.release.wat b/tests/compiler/bindings/raw.release.wat index 7d5d93f1b5..8bcf862a3c 100644 --- a/tests/compiler/bindings/raw.release.wat +++ b/tests/compiler/bindings/raw.release.wat @@ -1152,7 +1152,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1185,7 +1184,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2296,12 +2294,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2329,12 +2325,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#__set (param $0 i32) (param $1 i32) (param $2 i64) global.get $~lib/memory/__stack_pointer @@ -2400,325 +2394,318 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $2 - local.get $0 - call $~lib/typedarray/Int16Array#get:length + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $5 + i32.add local.set $5 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $2 - block $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 (result i32) - local.get $1 - call $~lib/typedarray/Float32Array#get:length - local.get $5 - i32.add - local.set $5 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - local.get $5 - i32.const 134217727 - i32.gt_u - if - i32.const 1248 - i32.const 1296 - i32.const 19 - i32.const 57 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 i32.const 3 - i32.shl - local.tee $7 - i32.const 1 call $~lib/rt/itcms/__new - local.tee $5 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=12 - local.get $2 - local.get $5 - i32.store - local.get $2 - local.get $5 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - local.get $2 + local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - br $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1248 + i32.const 1296 + i32.const 19 + i32.const 57 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 3 + i32.shl + local.tee $7 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=12 + local.get $2 + local.get $5 + i32.store + local.get $2 + local.get $5 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/typedarray/Uint64Array#constructor$1 end - local.tee $2 - i32.store offset=4 - loop $for-loop|0 + br $folding-inner1 + end + local.tee $2 + i32.store offset=4 + loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - call $~lib/typedarray/Int16Array#get:length + i32.store local.get $3 - i32.gt_s + local.get $0 + i32.load offset=8 + i32.const 1 + i32.shr_u + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=8 - i32.const 1 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 452 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $3 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $3 - local.get $5 - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|0 + i32.const 1552 + i32.const 1792 + i32.const 452 + i32.const 64 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $3 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $3 + local.get $5 + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|0 end - i32.const 0 - local.set $3 - loop $for-loop|1 + end + i32.const 0 + local.set $3 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/typedarray/Float32Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int16Array#get:length + local.get $3 + i32.add + local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store + global.get $~lib/memory/__stack_pointer local.get $1 - call $~lib/typedarray/Float32Array#get:length + i32.store local.get $3 - i32.gt_s + local.get $1 + i32.load offset=8 + i32.const 2 + i32.shr_u + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int16Array#get:length - local.get $3 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - i32.load offset=8 - i32.const 2 - i32.shr_u - i32.ge_u - if - i32.const 1552 - i32.const 1792 - i32.const 1304 - i32.const 64 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=4 - local.get $3 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $5 - local.get $4 - i64.trunc_sat_f32_u - call $~lib/typedarray/Uint64Array#__set - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|1 + i32.const 1552 + i32.const 1792 + i32.const 1304 + i32.const 64 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=4 + local.get $3 + i32.const 2 + i32.shl + i32.add + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + local.get $5 + local.get $4 + i64.trunc_sat_f32_u + call $~lib/typedarray/Uint64Array#__set + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end i32.const 35072 i32.const 35120 @@ -2771,12 +2758,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -2855,12 +2840,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2906,12 +2889,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -3280,7 +3261,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3332,7 +3312,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=4 local.get $5 @@ -3388,12 +3367,10 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/stringFunctionOptional@varargs (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3450,7 +3427,6 @@ local.get $0 local.get $1 call $bindings/esm/stringFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -3459,7 +3435,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3494,12 +3469,10 @@ local.get $0 local.get $1 call $bindings/esm/typedarrayFunction - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $export:bindings/esm/staticarrayFunction (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3537,7 +3510,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -3547,11 +3519,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $4 local.get $1 i32.const 20 i32.sub @@ -3594,7 +3564,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $4 i32.store offset=4 loop $for-loop|0 @@ -3684,12 +3653,10 @@ end br $folding-inner1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 35072 @@ -3735,236 +3702,231 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - local.get $0 - call $~lib/array/Array#get:length - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $3 - local.get $1 - call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u - if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $3 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 + i32.add + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $3 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $6 + local.get $4 + i32.store + local.get $6 + local.get $4 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $6 - local.get $4 + local.get $0 i32.store - local.get $6 - local.get $4 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $0 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $6 + local.get $2 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $6 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $6 - local.get $2 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=8 + local.get $6 + local.get $3 local.get $1 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $6 - local.get $3 - local.get $1 - local.get $2 - call $~lib/array/Array#__get - call $~lib/array/Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + call $~lib/array/Array#__get + call $~lib/array/Array#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 35072 i32.const 35120 @@ -3984,246 +3946,241 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/array/Array#get:length + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + call $~lib/array/Array#get:length + local.get $4 + i32.add + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store + local.get $5 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + i32.store offset=12 + local.get $4 + i32.const 268435455 + i32.gt_u + if + i32.const 1248 + i32.const 1920 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $4 + local.get $4 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $6 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $5 + local.get $3 + i32.store + local.get $5 + local.get $3 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + loop $for-loop|0 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 local.get $0 call $~lib/array/Array#get:length - local.set $4 + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/array/Array<~lib/string/String>#__get + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=8 + local.get $5 + local.get $2 + local.get $3 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + i32.const 0 + local.set $2 + loop $for-loop|1 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $3 local.get $1 call $~lib/array/Array#get:length - local.get $4 - i32.add - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store - local.get $5 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - i32.store offset=12 - local.get $4 - i32.const 268435455 - i32.gt_u + local.get $2 + i32.gt_s if - i32.const 1248 - i32.const 1920 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $4 - local.get $4 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $6 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $5 - local.get $3 - i32.store - local.get $5 - local.get $3 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - loop $for-loop|0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $5 i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 local.get $0 call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=8 - local.get $5 - local.get $2 - local.get $3 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 - end - end - i32.const 0 - local.set $2 - loop $for-loop|1 + i32.add + local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store + i32.store offset=12 local.get $1 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/array/Array#get:length - local.get $2 - i32.add - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $1 - local.get $2 - call $~lib/array/Array<~lib/string/String>#__get - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=8 - local.get $5 - local.get $3 - local.get $4 - call $~lib/array/Array<~lib/string/String>#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + call $~lib/array/Array<~lib/string/String>#__get + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 + local.get $5 + local.get $3 + local.get $4 + call $~lib/array/Array<~lib/string/String>#__set + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end i32.const 35072 i32.const 35120 @@ -4240,251 +4197,246 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - block $__inlined_func$bindings/esm/PlainObject#constructor$5 (result i32) + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 68 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 2276 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 68 - i32.const 13 + i32.const 0 + i32.const 0 call $~lib/rt/itcms/__new local.tee $2 i32.store - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2276 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store16 offset=18 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i64.const 0 - i64.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f32.const 0 - f32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - f64.const 0 - f64.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=56 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=60 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=64 - local.get $2 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - br $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store16 offset=18 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i64.const 0 + i64.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f32.const 0 + f32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + f64.const 0 + f64.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=56 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=60 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=64 + local.get $2 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$bindings/esm/PlainObject#constructor$5 end - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load8_s - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $3 - local.get $1 - i32.load8_s - i32.add - i32.store8 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load16_s offset=2 - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $2 - local.get $0 - local.get $1 - i32.load16_s offset=2 - i32.add - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return + br $folding-inner1 end - unreachable + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load8_s + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load8_s + i32.add + i32.store8 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load16_s offset=2 + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $0 + local.get $1 + i32.load16_s offset=2 + i32.add + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return end i32.const 35072 i32.const 35120 diff --git a/tests/compiler/builtins.debug.wat b/tests/compiler/builtins.debug.wat index 2896207a0e..c5c210aea4 100644 --- a/tests/compiler/builtins.debug.wat +++ b/tests/compiler/builtins.debug.wat @@ -188,40 +188,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -256,10 +254,8 @@ return ) (func $start:builtins~anonymous|1 - nop ) (func $start:builtins~anonymous|2 (param $a i32) (param $b i32) (param $c i32) (param $d i32) - nop ) (func $builtins/max3 (param $a i32) (param $b i32) (param $c i32) (result i32) (local $3 i32) @@ -384,7 +380,6 @@ return ) (func $builtins/test - nop ) (func $~start call $start:builtins diff --git a/tests/compiler/builtins.release.wat b/tests/compiler/builtins.release.wat index 50e6532749..fa7c2b22ee 100644 --- a/tests/compiler/builtins.release.wat +++ b/tests/compiler/builtins.release.wat @@ -76,10 +76,8 @@ i32.add ) (func $start:builtins~anonymous|1 - nop ) (func $start:builtins~anonymous|2 (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) - nop ) (func $~start call $start:builtins diff --git a/tests/compiler/call-inferred.debug.wat b/tests/compiler/call-inferred.debug.wat index 296ad10eb8..e080fb3da0 100644 --- a/tests/compiler/call-inferred.debug.wat +++ b/tests/compiler/call-inferred.debug.wat @@ -126,37 +126,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 160 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 160 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -382,22 +380,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -611,27 +607,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -649,28 +643,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -995,27 +987,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1024,37 +1014,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1144,7 +1132,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1213,15 +1200,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1290,15 +1275,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1306,21 +1289,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1328,27 +1309,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1517,39 +1496,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1568,31 +1545,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2344,7 +2319,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/call-inferred.release.wat b/tests/compiler/call-inferred.release.wat index e39cd59cc2..559793b4c5 100644 --- a/tests/compiler/call-inferred.release.wat +++ b/tests/compiler/call-inferred.release.wat @@ -1028,7 +1028,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1061,7 +1060,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1664,7 +1662,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1693,7 +1690,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/call-rest.debug.wat b/tests/compiler/call-rest.debug.wat index fe21237973..53208c38ec 100644 --- a/tests/compiler/call-rest.debug.wat +++ b/tests/compiler/call-rest.debug.wat @@ -123,37 +123,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -379,22 +377,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -608,27 +604,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -646,28 +640,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -992,27 +984,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1021,37 +1011,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1141,7 +1129,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1210,15 +1197,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1287,15 +1272,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1303,21 +1286,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1325,27 +1306,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1514,39 +1493,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1565,31 +1542,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2489,7 +2464,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3942,27 +3916,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/call-rest.release.wat b/tests/compiler/call-rest.release.wat index 0d9c6213c5..d4b2e80337 100644 --- a/tests/compiler/call-rest.release.wat +++ b/tests/compiler/call-rest.release.wat @@ -1076,7 +1076,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1109,7 +1108,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1816,12 +1814,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1867,12 +1863,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $call-rest/fn (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -1979,12 +1973,10 @@ local.get $1 local.get $2 call $call-rest/fn - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -2395,12 +2387,10 @@ local.get $0 local.get $1 call $call-rest/Foo#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $call-rest/Foo#sum (param $0 i32) (result i32) (local $1 i32) @@ -2492,12 +2482,10 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:call-rest (local $0 i32) @@ -2826,12 +2814,10 @@ i32.store offset=4 local.get $0 call $call-rest/count - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 if i32.const 0 i32.const 1536 @@ -2936,7 +2922,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -2951,7 +2936,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/call-super.debug.wat b/tests/compiler/call-super.debug.wat index 09ec3c5314..050aff4d05 100644 --- a/tests/compiler/call-super.debug.wat +++ b/tests/compiler/call-super.debug.wat @@ -96,37 +96,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -352,22 +350,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -581,27 +577,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -619,28 +613,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -965,27 +957,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -994,37 +984,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1114,7 +1102,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1183,15 +1170,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1260,15 +1245,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1276,21 +1259,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1298,27 +1279,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1487,39 +1466,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1538,31 +1515,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2405,7 +2380,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/call-super.release.wat b/tests/compiler/call-super.release.wat index 7cd486f260..a4f2af9fe6 100644 --- a/tests/compiler/call-super.release.wat +++ b/tests/compiler/call-super.release.wat @@ -1028,7 +1028,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1061,7 +1060,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1574,7 +1572,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1599,7 +1596,6 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1649,7 +1645,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1686,7 +1681,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1735,7 +1729,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1760,7 +1753,6 @@ i32.const 2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1803,7 +1795,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1840,7 +1831,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1889,7 +1879,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1908,7 +1897,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1958,7 +1946,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1971,7 +1958,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2020,7 +2006,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2039,7 +2024,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2082,7 +2066,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2095,7 +2078,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2144,7 +2126,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2163,7 +2144,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2198,7 +2178,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2211,7 +2190,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-implements.debug.wat b/tests/compiler/class-implements.debug.wat index d185f51e6e..e967a93f72 100644 --- a/tests/compiler/class-implements.debug.wat +++ b/tests/compiler/class-implements.debug.wat @@ -99,37 +99,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -355,22 +353,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -584,27 +580,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -622,28 +616,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -968,27 +960,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -997,37 +987,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1117,7 +1105,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1186,15 +1173,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1263,15 +1248,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1279,21 +1262,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1301,27 +1282,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1490,39 +1469,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1541,31 +1518,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2731,7 +2706,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-implements.release.wat b/tests/compiler/class-implements.release.wat index 1b3c66f649..9415e99e5d 100644 --- a/tests/compiler/class-implements.release.wat +++ b/tests/compiler/class-implements.release.wat @@ -1077,7 +1077,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1110,7 +1109,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1993,12 +1991,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $class-implements/B3#get:foo (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2024,12 +2020,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:class-implements (local $0 i32) @@ -2131,7 +2125,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2168,7 +2161,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2493,7 +2485,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2529,7 +2520,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2599,7 +2589,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2635,7 +2624,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2776,7 +2764,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2812,7 +2799,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2882,7 +2868,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2918,7 +2903,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading-cast.debug.wat b/tests/compiler/class-overloading-cast.debug.wat index 36476b933b..86441b6a1b 100644 --- a/tests/compiler/class-overloading-cast.debug.wat +++ b/tests/compiler/class-overloading-cast.debug.wat @@ -105,37 +105,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -361,22 +359,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -590,27 +586,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -628,28 +622,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -974,27 +966,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1003,37 +993,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1123,7 +1111,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1192,15 +1179,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1269,15 +1254,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1285,21 +1268,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1307,27 +1288,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1496,39 +1475,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1547,31 +1524,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2364,40 +2339,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2548,7 +2521,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-overloading-cast.release.wat b/tests/compiler/class-overloading-cast.release.wat index 3b6a73a719..39ce65ceb7 100644 --- a/tests/compiler/class-overloading-cast.release.wat +++ b/tests/compiler/class-overloading-cast.release.wat @@ -1065,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1098,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1807,7 +1805,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1843,7 +1840,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1971,7 +1967,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2007,7 +2002,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2093,7 +2087,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2118,7 +2111,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2154,14 +2146,12 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class-overloading.debug.wat b/tests/compiler/class-overloading.debug.wat index 77ec422d5b..4f55946065 100644 --- a/tests/compiler/class-overloading.debug.wat +++ b/tests/compiler/class-overloading.debug.wat @@ -109,37 +109,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -365,22 +363,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -594,27 +590,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -632,28 +626,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -978,27 +970,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1007,37 +997,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1127,7 +1115,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1196,15 +1183,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1273,15 +1258,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1289,21 +1272,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1311,27 +1292,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1500,39 +1479,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1551,31 +1528,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2368,40 +2343,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2846,7 +2819,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-overloading.release.wat b/tests/compiler/class-overloading.release.wat index b7ba099006..ac88e87ea3 100644 --- a/tests/compiler/class-overloading.release.wat +++ b/tests/compiler/class-overloading.release.wat @@ -1087,7 +1087,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1120,7 +1119,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1561,7 +1559,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1597,7 +1594,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1917,1317 +1913,1310 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34636 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1204 - i32.const 1200 - i32.store - i32.const 1208 - i32.const 1200 - i32.store - i32.const 1200 - global.set $~lib/rt/itcms/pinSpace - i32.const 1236 - i32.const 1232 - i32.store - i32.const 1240 - i32.const 1232 - i32.store - i32.const 1232 - global.set $~lib/rt/itcms/toSpace - i32.const 1380 - i32.const 1376 - i32.store - i32.const 1384 - i32.const 1376 - i32.store - i32.const 1376 - global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34636 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1204 + i32.const 1200 + i32.store + i32.const 1208 + i32.const 1200 + i32.store + i32.const 1200 + global.set $~lib/rt/itcms/pinSpace + i32.const 1236 + i32.const 1232 + i32.store + i32.const 1240 + i32.const 1232 + i32.store + i32.const 1232 + global.set $~lib/rt/itcms/toSpace + i32.const 1380 + i32.const 1376 + i32.store + i32.const 1384 + i32.const 1376 + i32.store + i32.const 1376 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $class-overloading/B#constructor + global.set $class-overloading/a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $class-overloading/B#constructor - global.set $class-overloading/a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 38 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$153 - block $default - block $case2 - block $case1 - block $case0 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case0 $case1 $case0 $case0 $case2 $default - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$153 + i32.const 1552 + i32.const 38 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$153 + block $default + block $case2 + block $case1 + block $case0 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case0 $case1 $case0 $case0 $case2 $default end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$153 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$153 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 41 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$154 - block $default4 - block $case25 - block $case16 - block $case07 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case07 $case16 $case07 $case07 $case25 $default4 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$154 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 41 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$154 + block $default4 + block $case25 + block $case16 + block $case07 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case07 $case16 $case07 $case07 $case25 $default4 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$154 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$154 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 44 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$155 - block $default8 - block $case29 - block $case110 - block $case011 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case011 $case110 $case011 $case011 $case29 $default8 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$155 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 44 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$155 + block $default8 + block $case29 + block $case110 + block $case011 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case011 $case110 $case011 $case011 $case29 $default8 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$155 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$155 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 47 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/B#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/c - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - local.tee $0 - i32.store - local.get $0 - call $class-overloading/C#a - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 71 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 74 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 77 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/c - i32.store - i32.const 1616 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=4 - i32.const 1616 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 79 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/D#constructor - global.set $class-overloading/a - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 89 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$157 - block $default16 - block $case217 - block $case118 - block $case019 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case019 $case118 $case019 $case019 $case217 $default16 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$157 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 47 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/B#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/c + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + local.tee $0 + i32.store + local.get $0 + call $class-overloading/C#a + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 71 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 74 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 77 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/c + i32.store + i32.const 1616 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=4 + i32.const 1616 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 79 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/D#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 89 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$157 + block $default16 + block $case217 + block $case118 + block $case019 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case019 $case118 $case019 $case019 $case217 $default16 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$157 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$157 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 92 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$158 - block $default24 - block $case225 - block $case126 - block $case027 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case027 $case126 $case027 $case027 $case225 $default24 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$158 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 92 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$158 + block $default24 + block $case225 + block $case126 + block $case027 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case027 $case126 $case027 $case027 $case225 $default24 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$158 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$158 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 95 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$159 - block $default32 - block $case233 - block $case134 - block $case035 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case035 $case134 $case035 $case035 $case233 $default32 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$159 + i32.const 1488 + global.set $class-overloading/which + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 95 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$159 + block $default32 + block $case233 + block $case134 + block $case035 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case035 $case134 $case035 $case035 $case233 $default32 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$159 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$159 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 97 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - call $class-overloading/E#constructor - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 107 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$160 - block $default40 - block $case241 - block $case142 - block $case043 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case043 $case142 $case043 $case043 $case241 $default40 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$160 - end - i32.const 1616 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$160 - end - i32.const 1648 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$160 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 97 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + call $class-overloading/E#constructor + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 107 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$160 + block $default40 + block $case241 + block $case142 + block $case043 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case043 $case142 $case043 $case043 $case241 $default40 + end + i32.const 1520 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$160 + end + i32.const 1616 + global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$160 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$160 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 110 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$161 - block $default48 - block $case249 - block $case150 - block $case051 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case051 $case150 $case051 $case051 $case249 $default48 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$161 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 110 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$161 + block $default48 + block $case249 + block $case150 + block $case051 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case051 $case150 $case051 $case051 $case249 $default48 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$161 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$161 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 113 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$162 - block $default56 - block $case257 - block $case158 - block $case059 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case059 $case158 $case059 $case059 $case257 $default56 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$162 + i32.const 1488 + global.set $class-overloading/which + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 113 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$162 + block $default56 + block $case257 + block $case158 + block $case059 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case059 $case158 $case059 $case059 $case257 $default56 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$162 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$162 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1520 - i32.store offset=4 - local.get $0 - i32.const 1520 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 115 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $class-overloading/E#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/a - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - local.get $0 - call $class-overloading/A#a@override - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 137 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$164 - block $default64 - block $case265 - block $case166 - block $case067 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case067 $case166 $case067 $case067 $case265 $default64 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$164 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1520 + i32.store offset=4 + local.get $0 + i32.const 1520 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 115 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $class-overloading/E#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/a + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + local.get $0 + call $class-overloading/A#a@override + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 137 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$164 + block $default64 + block $case265 + block $case166 + block $case067 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case067 $case166 $case067 $case067 $case265 $default64 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$164 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$164 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 140 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#get:c@override$165 - block $default72 - block $case273 - block $case174 - block $case075 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case075 $case174 $case075 $case075 $case273 $default72 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#get:c@override$165 - end - i32.const 1616 - global.set $class-overloading/which + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 140 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#get:c@override$165 + block $default72 + block $case273 + block $case174 + block $case075 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case075 $case174 $case075 $case075 $case273 $default72 + end + i32.const 1520 + global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#get:c@override$165 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#get:c@override$165 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 143 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/a - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A#b@override$166 - block $default80 - block $case281 - block $case182 - block $case083 - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 5 - i32.sub - br_table $case083 $case182 $case083 $case083 $case281 $default80 - end - i32.const 1520 - global.set $class-overloading/which - br $__inlined_func$class-overloading/A#b@override$166 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 143 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/a + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A#b@override$166 + block $default80 + block $case281 + block $case182 + block $case083 + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 5 + i32.sub + br_table $case083 $case182 $case083 $case083 $case281 $default80 end - i32.const 1616 + i32.const 1520 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1648 + i32.const 1616 global.set $class-overloading/which br $__inlined_func$class-overloading/A#b@override$166 end - i32.const 1488 + i32.const 1648 global.set $class-overloading/which + br $__inlined_func$class-overloading/A#b@override$166 end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1648 - i32.store offset=4 - local.get $0 - i32.const 1648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 146 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/ia - i32.const 1056 + i32.const 1488 global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ia - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@override$168 - block $default88 - block $case189 + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1648 + i32.store offset=4 + local.get $0 + i32.const 1648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 146 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/ia + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ia + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@override$168 + block $default88 + block $case189 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case189 - br $default88 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$168 + i32.const 13 + i32.eq + br_if $case189 + br $default88 end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$168 end - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1680 - i32.store offset=4 - local.get $0 - i32.const 1680 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 162 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1712 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@override$168 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/ic - i32.const 1056 - global.set $class-overloading/which - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/ic - local.tee $0 - i32.store - block $__inlined_func$class-overloading/IA#foo@override$170 - block $default91 - block $case192 + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1680 + i32.store offset=4 + local.get $0 + i32.const 1680 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 162 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/ic + i32.const 1056 + global.set $class-overloading/which + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/ic + local.tee $0 + i32.store + block $__inlined_func$class-overloading/IA#foo@override$170 + block $default91 + block $case192 + local.get $0 + i32.const 8 + i32.sub + i32.load + local.tee $0 + i32.const 11 + i32.ne + if local.get $0 - i32.const 8 - i32.sub - i32.load - local.tee $0 - i32.const 11 - i32.ne - if - local.get $0 - i32.const 13 - i32.eq - br_if $case192 - br $default91 - end - i32.const 1680 - global.set $class-overloading/which - br $__inlined_func$class-overloading/IA#foo@override$170 + i32.const 13 + i32.eq + br_if $case192 + br $default91 end - i32.const 1712 + i32.const 1680 global.set $class-overloading/which br $__inlined_func$class-overloading/IA#foo@override$170 end - unreachable - end - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/which - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1712 - i32.store offset=4 - local.get $0 - i32.const 1712 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1552 - i32.const 177 - i32.const 1 - call $~lib/builtins/abort - unreachable + i32.const 1712 + global.set $class-overloading/which + br $__inlined_func$class-overloading/IA#foo@override$170 end + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/which + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1712 + i32.store offset=4 + local.get $0 + i32.const 1712 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1552 + i32.const 177 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 15 + i32.const 14 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + global.set $class-overloading/b2 + global.get $~lib/memory/__stack_pointer + global.get $class-overloading/b2 + local.tee $0 + i32.store + block $__inlined_func$class-overloading/A2#foo@override$1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz + i32.load + i32.const 15 + i32.eq if global.get $~lib/memory/__stack_pointer - i32.const 14 + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 call $~lib/rt/itcms/__new local.tee $0 i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - global.set $class-overloading/b2 - global.get $~lib/memory/__stack_pointer - global.get $class-overloading/b2 - local.tee $0 - i32.store - block $__inlined_func$class-overloading/A2#foo@override$1 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub - i32.load - i32.const 15 - i32.eq + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $0 + i32.eqz if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 17 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1868 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 8 - i32.sub - i32.load - i32.const 16 - i32.ne - if - i32.const 1744 - i32.const 1552 - i32.const 186 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $__inlined_func$class-overloading/A2#foo@override$1 end - i32.const 1744 - i32.const 1552 - i32.const 198 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1868 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 8 + i32.sub + i32.load + i32.const 16 + i32.ne + if + i32.const 1744 + i32.const 1552 + i32.const 186 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$class-overloading/A2#foo@override$1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1744 + i32.const 1552 + i32.const 198 + i32.const 5 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34656 i32.const 34704 diff --git a/tests/compiler/class-override.debug.wat b/tests/compiler/class-override.debug.wat index 175f7dc55a..5fb98225b9 100644 --- a/tests/compiler/class-override.debug.wat +++ b/tests/compiler/class-override.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2379,7 +2354,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/class-override.release.wat b/tests/compiler/class-override.release.wat index 83f4b7874c..dad3c95a7e 100644 --- a/tests/compiler/class-override.release.wat +++ b/tests/compiler/class-override.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1476,7 +1474,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1501,7 +1498,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1526,7 +1522,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1551,7 +1546,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1579,28 +1573,24 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/class.debug.wat b/tests/compiler/class.debug.wat index e35eccc0ad..e8f373491e 100644 --- a/tests/compiler/class.debug.wat +++ b/tests/compiler/class.debug.wat @@ -177,37 +177,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -433,22 +431,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -662,27 +658,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -700,28 +694,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1046,27 +1038,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1075,37 +1065,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1195,7 +1183,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1264,15 +1251,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1341,15 +1326,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1357,21 +1340,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1379,27 +1360,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1568,39 +1547,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1619,31 +1596,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2485,7 +2460,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $class/GenericInitializer~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/class.release.wat b/tests/compiler/class.release.wat index 77e0ddac27..947b8a14a1 100644 --- a/tests/compiler/class.release.wat +++ b/tests/compiler/class.release.wat @@ -1038,7 +1038,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1071,7 +1070,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1616,7 +1614,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1645,7 +1642,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/comma.debug.wat b/tests/compiler/comma.debug.wat index 80182e74d9..e329144ab1 100644 --- a/tests/compiler/comma.debug.wat +++ b/tests/compiler/comma.debug.wat @@ -152,7 +152,6 @@ global.get $comma/a i32.lt_s if - nop global.get $comma/a i32.const 1 i32.sub diff --git a/tests/compiler/constructor.debug.wat b/tests/compiler/constructor.debug.wat index b04736fddd..5ab44a6260 100644 --- a/tests/compiler/constructor.debug.wat +++ b/tests/compiler/constructor.debug.wat @@ -105,37 +105,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -361,22 +359,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -590,27 +586,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -628,28 +622,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -974,27 +966,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1003,37 +993,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1123,7 +1111,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1192,15 +1179,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1269,15 +1254,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1285,21 +1268,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1307,27 +1288,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1496,39 +1475,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1547,31 +1524,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2455,7 +2430,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/constructor.release.wat b/tests/compiler/constructor.release.wat index 1def14eb5d..7c0c6d806b 100644 --- a/tests/compiler/constructor.release.wat +++ b/tests/compiler/constructor.release.wat @@ -1091,7 +1091,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1124,7 +1123,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/converge.debug.wat b/tests/compiler/converge.debug.wat index ea98516431..7acd820bd3 100644 --- a/tests/compiler/converge.debug.wat +++ b/tests/compiler/converge.debug.wat @@ -9,6 +9,5 @@ (export "test" (func $converge/test)) (export "memory" (memory $0)) (func $converge/test - nop ) ) diff --git a/tests/compiler/converge.release.wat b/tests/compiler/converge.release.wat index a6dddbae54..7bbb53503e 100644 --- a/tests/compiler/converge.release.wat +++ b/tests/compiler/converge.release.wat @@ -4,6 +4,5 @@ (export "test" (func $converge/test)) (export "memory" (memory $0)) (func $converge/test - nop ) ) diff --git a/tests/compiler/do.debug.wat b/tests/compiler/do.debug.wat index cb743bd193..1327ed8a52 100644 --- a/tests/compiler/do.debug.wat +++ b/tests/compiler/do.debug.wat @@ -95,7 +95,6 @@ i32.const 10 local.set $n loop $do-loop|0 - nop local.get $n local.tee $1 i32.const 1 @@ -500,37 +499,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -756,22 +753,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -985,27 +980,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -1023,28 +1016,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1369,27 +1360,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1398,37 +1387,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1518,7 +1505,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1587,15 +1573,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1664,15 +1648,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1680,21 +1662,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1702,27 +1682,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1891,39 +1869,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1942,31 +1918,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2833,16 +2807,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3060,7 +3032,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/do.release.wat b/tests/compiler/do.release.wat index 476bbee294..d44d65ece2 100644 --- a/tests/compiler/do.release.wat +++ b/tests/compiler/do.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1873,7 +1871,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1901,7 +1898,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/duplicate-fields.debug.wat b/tests/compiler/duplicate-fields.debug.wat index 1a537082f8..79b3b9b121 100644 --- a/tests/compiler/duplicate-fields.debug.wat +++ b/tests/compiler/duplicate-fields.debug.wat @@ -99,37 +99,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -355,22 +353,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -584,27 +580,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -622,28 +616,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -968,27 +960,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -997,37 +987,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1117,7 +1105,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1186,15 +1173,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1263,15 +1248,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1279,21 +1262,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1301,27 +1282,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1490,39 +1469,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1541,31 +1518,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2440,7 +2415,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $duplicate-fields/A2~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/duplicate-fields.release.wat b/tests/compiler/duplicate-fields.release.wat index 6aff8c65a7..4a316496d2 100644 --- a/tests/compiler/duplicate-fields.release.wat +++ b/tests/compiler/duplicate-fields.release.wat @@ -1045,7 +1045,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1078,7 +1077,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1723,7 +1721,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1764,7 +1761,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1858,7 +1854,6 @@ i32.const 0 call $duplicate-fields/A2#set:bar global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1908,7 +1903,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1965,7 +1959,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1991,7 +1984,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2020,7 +2012,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2039,7 +2030,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/empty-exportruntime.debug.wat b/tests/compiler/empty-exportruntime.debug.wat index 0bf2e3b6d0..e0441f24cb 100644 --- a/tests/compiler/empty-exportruntime.debug.wat +++ b/tests/compiler/empty-exportruntime.debug.wat @@ -98,37 +98,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -354,22 +352,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -583,27 +579,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -621,28 +615,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -967,27 +959,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -996,37 +986,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1116,7 +1104,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1185,15 +1172,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1262,15 +1247,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1278,21 +1261,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1300,27 +1281,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1489,39 +1468,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1540,31 +1517,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2361,16 +2336,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2419,7 +2392,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/empty-exportruntime.release.wat b/tests/compiler/empty-exportruntime.release.wat index 6372bb77d3..f050d955d0 100644 --- a/tests/compiler/empty-exportruntime.release.wat +++ b/tests/compiler/empty-exportruntime.release.wat @@ -1046,7 +1046,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1079,7 +1078,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/empty-new.debug.wat b/tests/compiler/empty-new.debug.wat index 3ef75f4750..dc8a97157f 100644 --- a/tests/compiler/empty-new.debug.wat +++ b/tests/compiler/empty-new.debug.wat @@ -91,37 +91,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -347,22 +345,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -576,27 +572,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -614,28 +608,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -960,27 +952,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -989,37 +979,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1109,7 +1097,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1178,15 +1165,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1255,15 +1240,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1271,21 +1254,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1293,27 +1274,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1482,39 +1461,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1533,31 +1510,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2313,7 +2288,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/empty-new.release.wat b/tests/compiler/empty-new.release.wat index 1d975a97eb..73a85ba25d 100644 --- a/tests/compiler/empty-new.release.wat +++ b/tests/compiler/empty-new.release.wat @@ -1024,7 +1024,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1057,7 +1056,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/export-default.debug.wat b/tests/compiler/export-default.debug.wat index fff7dc1691..d897bb947d 100644 --- a/tests/compiler/export-default.debug.wat +++ b/tests/compiler/export-default.debug.wat @@ -10,6 +10,5 @@ (export "default" (func $export-default/theDefault)) (export "memory" (memory $0)) (func $export-default/theDefault - nop ) ) diff --git a/tests/compiler/export-default.release.wat b/tests/compiler/export-default.release.wat index 80c3dd4522..d2e7be5666 100644 --- a/tests/compiler/export-default.release.wat +++ b/tests/compiler/export-default.release.wat @@ -5,6 +5,5 @@ (export "default" (func $export-default/theDefault)) (export "memory" (memory $0)) (func $export-default/theDefault - nop ) ) diff --git a/tests/compiler/exportimport-table.debug.wat b/tests/compiler/exportimport-table.debug.wat index 56e0ac4ffa..66306446a2 100644 --- a/tests/compiler/exportimport-table.debug.wat +++ b/tests/compiler/exportimport-table.debug.wat @@ -12,7 +12,6 @@ (export "table" (table $0)) (start $~start) (func $start:exportimport-table~anonymous|0 - nop ) (func $start:exportimport-table global.get $exportimport-table/f diff --git a/tests/compiler/exportimport-table.release.wat b/tests/compiler/exportimport-table.release.wat index d16d3131a3..9c5d7e1158 100644 --- a/tests/compiler/exportimport-table.release.wat +++ b/tests/compiler/exportimport-table.release.wat @@ -8,6 +8,5 @@ (export "memory" (memory $0)) (export "table" (table $0)) (func $start:exportimport-table~anonymous|0 - nop ) ) diff --git a/tests/compiler/exports-lazy.debug.wat b/tests/compiler/exports-lazy.debug.wat index 121a49449c..af546f4467 100644 --- a/tests/compiler/exports-lazy.debug.wat +++ b/tests/compiler/exports-lazy.debug.wat @@ -23,10 +23,8 @@ call $exports-lazy/lazyFuncUsed ) (func $exports-lazy/lazyFuncUsed - nop ) (func $exports-lazy/lazyFuncUnused - nop ) (func $~start call $start:exports-lazy diff --git a/tests/compiler/exportstar-rereexport.debug.wat b/tests/compiler/exportstar-rereexport.debug.wat index 4c12a1debd..22900fa807 100644 --- a/tests/compiler/exportstar-rereexport.debug.wat +++ b/tests/compiler/exportstar-rereexport.debug.wat @@ -131,37 +131,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -387,22 +385,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -616,27 +612,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -654,28 +648,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1000,27 +992,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1029,37 +1019,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1149,7 +1137,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1218,15 +1205,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1295,15 +1280,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1311,21 +1294,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1333,27 +1314,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1522,39 +1501,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1573,31 +1550,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2314,7 +2289,6 @@ call $start:rereexport ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2361,7 +2335,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/exportstar-rereexport.release.wat b/tests/compiler/exportstar-rereexport.release.wat index 9c11a00d76..2dddf5b5b2 100644 --- a/tests/compiler/exportstar-rereexport.release.wat +++ b/tests/compiler/exportstar-rereexport.release.wat @@ -1058,7 +1058,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1090,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1400,7 +1398,6 @@ local.get $0 ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1630,11 +1627,9 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/extends-baseaggregate.debug.wat b/tests/compiler/extends-baseaggregate.debug.wat index 6a927d7421..cdab16fe1e 100644 --- a/tests/compiler/extends-baseaggregate.debug.wat +++ b/tests/compiler/extends-baseaggregate.debug.wat @@ -101,37 +101,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 256 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -357,22 +355,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -586,27 +582,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -624,28 +618,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -970,27 +962,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -999,37 +989,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1119,7 +1107,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1188,15 +1175,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1265,15 +1250,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1281,21 +1264,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1303,27 +1284,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1492,39 +1471,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1543,31 +1520,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2475,7 +2450,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $extends-baseaggregate/B1~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -3001,27 +2975,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -3073,27 +3045,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/extends-baseaggregate.release.wat b/tests/compiler/extends-baseaggregate.release.wat index 13d0b5c1ef..ea1eb369b1 100644 --- a/tests/compiler/extends-baseaggregate.release.wat +++ b/tests/compiler/extends-baseaggregate.release.wat @@ -1049,7 +1049,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1082,7 +1081,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1679,23 +1677,20 @@ block $invalid block $~lib/array/Array block $~lib/array/Array - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $~lib/array/Array $~lib/array/Array $invalid end return end return end - unreachable + return end local.get $0 call $~lib/array/Array~visit @@ -1737,334 +1732,327 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 34508 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1332 - i32.const 1328 - i32.store - i32.const 1336 - i32.const 1328 - i32.store - i32.const 1328 - global.set $~lib/rt/itcms/pinSpace - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/toSpace - i32.const 1508 - i32.const 1504 - i32.store - i32.const 1512 - i32.const 1504 - i32.store - i32.const 1504 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 34508 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1332 + i32.const 1328 + i32.store + i32.const 1336 + i32.const 1328 + i32.store + i32.const 1328 + global.set $~lib/rt/itcms/pinSpace + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/toSpace + i32.const 1508 + i32.const 1504 + i32.store + i32.const 1512 + i32.const 1504 + i32.store + i32.const 1504 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $6 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 20 - i32.const 7 + i32.const 5 call $~lib/rt/itcms/__new local.tee $6 i32.store + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $6 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $6 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__new + local.tee $6 i32.store - local.get $6 - i32.eqz + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=16 + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1180 + i32.load + local.tee $5 + i32.const 1 + i32.add + local.tee $4 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + local.get $2 + i32.const 1176 + i32.load + local.tee $0 + i32.const 2 + i32.shr_u + i32.gt_u + if + local.get $2 + i32.const 268435455 + i32.gt_u if - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store + i32.const 1616 + i32.const 1664 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - f64.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=16 - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer i32.const 1168 i32.store - i32.const 1180 - i32.load - local.tee $5 - i32.const 1 - i32.add - local.tee $4 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - local.get $2 - i32.const 1176 - i32.load - local.tee $0 - i32.const 2 - i32.shr_u - i32.gt_u - if + block $__inlined_func$~lib/rt/itcms/__renew$136 + i32.const 1073741820 + local.get $0 + i32.const 1 + i32.shl + local.tee $0 + local.get $0 + i32.const 1073741820 + i32.ge_u + select + local.tee $1 + i32.const 8 local.get $2 - i32.const 268435455 - i32.gt_u - if - i32.const 1616 - i32.const 1664 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + local.get $0 + local.get $1 + i32.lt_u + select + local.tee $3 i32.const 1168 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$136 - i32.const 1073741820 - local.get $0 - i32.const 1 - i32.shl - local.tee $0 - local.get $0 - i32.const 1073741820 - i32.ge_u - select - local.tee $1 - i32.const 8 - local.get $2 + i32.load + local.tee $0 + i32.const 20 + i32.sub + local.tee $2 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if local.get $2 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - local.get $0 - local.get $1 - i32.lt_u - select - local.tee $3 - i32.const 1168 - i32.load - local.tee $0 - i32.const 20 - i32.sub - local.tee $2 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $2 - local.get $3 - i32.store offset=16 - local.get $0 - local.set $1 - br $__inlined_func$~lib/rt/itcms/__renew$136 - end local.get $3 - local.get $2 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $1 + i32.store offset=16 local.get $0 - local.get $3 - local.get $2 - i32.load offset=16 - local.tee $2 - local.get $2 - local.get $3 - i32.gt_u - select - memory.copy + local.set $1 + br $__inlined_func$~lib/rt/itcms/__renew$136 end + local.get $3 + local.get $2 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $1 local.get $0 - local.get $1 - i32.ne - if - i32.const 1168 - local.get $1 - i32.store - i32.const 1172 - local.get $1 - i32.store - i32.const 1168 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - end - i32.const 1176 local.get $3 + local.get $2 + i32.load offset=16 + local.tee $2 + local.get $2 + local.get $3 + i32.gt_u + select + memory.copy + end + local.get $0 + local.get $1 + i32.ne + if + i32.const 1168 + local.get $1 i32.store + i32.const 1172 + local.get $1 + i32.store + i32.const 1168 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1172 - i32.load - local.get $5 - i32.const 2 - i32.shl - i32.add - local.get $6 - i32.store - i32.const 1168 - local.get $6 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1168 - i32.store - i32.const 1180 - local.get $4 + i32.const 1176 + local.get $3 i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1172 + i32.load + local.get $5 + i32.const 2 + i32.shl + i32.add + local.get $6 + i32.store + i32.const 1168 + local.get $6 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1168 + i32.store + i32.const 1180 + local.get $4 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34528 i32.const 34576 diff --git a/tests/compiler/extends-recursive.debug.wat b/tests/compiler/extends-recursive.debug.wat index 53d2191b4c..e0074d457f 100644 --- a/tests/compiler/extends-recursive.debug.wat +++ b/tests/compiler/extends-recursive.debug.wat @@ -91,37 +91,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -347,22 +345,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -576,27 +572,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -614,28 +608,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -960,27 +952,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -989,37 +979,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1109,7 +1097,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1178,15 +1165,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1255,15 +1240,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1271,21 +1254,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1293,27 +1274,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1482,39 +1461,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1533,31 +1510,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2389,7 +2364,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $extends-recursive/Child~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/extends-recursive.release.wat b/tests/compiler/extends-recursive.release.wat index 634be9a766..19332bc021 100644 --- a/tests/compiler/extends-recursive.release.wat +++ b/tests/compiler/extends-recursive.release.wat @@ -1025,7 +1025,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1058,7 +1057,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1525,23 +1523,20 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid end return end return end - unreachable + return end unreachable end @@ -1609,7 +1604,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1635,7 +1629,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1664,7 +1657,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1677,7 +1669,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/features/gc.release.wat b/tests/compiler/features/gc.release.wat index 5ef1532691..e5baaab127 100644 --- a/tests/compiler/features/gc.release.wat +++ b/tests/compiler/features/gc.release.wat @@ -20,6 +20,5 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start (type $0) - nop ) ) diff --git a/tests/compiler/features/reference-types.debug.wat b/tests/compiler/features/reference-types.debug.wat index 6c013cc05f..77709d2bd9 100644 --- a/tests/compiler/features/reference-types.debug.wat +++ b/tests/compiler/features/reference-types.debug.wat @@ -102,7 +102,6 @@ end ) (func $features/reference-types/someFunc - nop ) (func $start:features/reference-types (local $funcLocal funcref) @@ -129,7 +128,6 @@ i32.eqz i32.eqz if - nop else i32.const 0 i32.eqz @@ -146,7 +144,6 @@ ref.is_null i32.eqz if - nop else i32.const 0 i32.eqz diff --git a/tests/compiler/features/reference-types.release.wat b/tests/compiler/features/reference-types.release.wat index 86000c961d..1c580b033e 100644 --- a/tests/compiler/features/reference-types.release.wat +++ b/tests/compiler/features/reference-types.release.wat @@ -29,7 +29,6 @@ (export "memory" (memory $0)) (start $~start) (func $features/reference-types/someFunc - nop ) (func $features/reference-types/internal (param $0 externref) (result externref) local.get $0 diff --git a/tests/compiler/field-initialization.debug.wat b/tests/compiler/field-initialization.debug.wat index d9319dff8c..d94296464e 100644 --- a/tests/compiler/field-initialization.debug.wat +++ b/tests/compiler/field-initialization.debug.wat @@ -102,37 +102,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -358,22 +356,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -587,27 +583,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -625,28 +619,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -971,27 +963,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1000,37 +990,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1120,7 +1108,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1189,15 +1176,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1266,15 +1251,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1282,21 +1265,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1304,27 +1285,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1493,39 +1472,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1544,31 +1521,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2622,40 +2597,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2740,7 +2713,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $field-initialization/Ref_Init~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -5112,36 +5084,34 @@ unreachable end global.get $~lib/memory/__stack_pointer - block $field-initialization/Ref_Init_InlineCtor#constructor|inlined.0 (result i32) - i32.const 0 - local.set $30 - local.get $30 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $30 - i32.store offset=132 - end - local.get $30 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $34 + i32.const 0 + local.set $30 + local.get $30 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 - call $field-initialization/Ref_Init_InlineCtor#set:a - local.get $30 + i32.const 4 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $30 + i32.store offset=132 end + local.get $30 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=80 + local.get $34 + call $field-initialization/Ref_Init_InlineCtor#set:a + local.get $30 local.tee $31 i32.store offset=136 local.get $31 @@ -5163,44 +5133,42 @@ unreachable end global.get $~lib/memory/__stack_pointer - block $field-initialization/Ref_InlineCtor_Init#constructor|inlined.0 (result i32) - i32.const 0 - local.set $32 - local.get $32 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $32 - i32.store offset=140 - end - local.get $32 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=4 - local.get $34 - i32.const 0 - i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $34 + i32.const 0 + local.set $32 + local.get $32 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=80 - local.get $34 - call $field-initialization/Ref_InlineCtor_Init#set:a - local.get $32 + i32.const 4 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $32 + i32.store offset=140 end + local.get $32 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=4 + local.get $34 + i32.const 0 + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=80 + local.get $34 + call $field-initialization/Ref_InlineCtor_Init#set:a + local.get $32 local.tee $33 i32.store offset=144 local.get $33 diff --git a/tests/compiler/field-initialization.release.wat b/tests/compiler/field-initialization.release.wat index 1527ebc9cc..f85c91295c 100644 --- a/tests/compiler/field-initialization.release.wat +++ b/tests/compiler/field-initialization.release.wat @@ -1049,7 +1049,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1082,7 +1081,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1607,22 +1605,19 @@ block $invalid block $field-initialization/SomeOtherObject block $field-initialization/SomeObject - block - block $field-initialization/Value_Ctor_Init - block $field-initialization/Value_Init_Ctor - block $field-initialization/Value_Ctor - block $field-initialization/Value - block $field-initialization/Value_Init - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return + block $field-initialization/Value_Ctor_Init + block $field-initialization/Value_Init_Ctor + block $field-initialization/Value_Ctor + block $field-initialization/Value + block $field-initialization/Value_Init + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $field-initialization/Value_Init $field-initialization/Value $folding-inner0 $folding-inner0 $folding-inner0 $field-initialization/Value_Ctor $field-initialization/Value_Init_Ctor $field-initialization/Value_Ctor_Init $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $folding-inner0 $folding-inner1 $field-initialization/SomeObject $field-initialization/SomeOtherObject $folding-inner0 $folding-inner0 $folding-inner0 $invalid end return end @@ -1638,7 +1633,7 @@ end return end - unreachable + return end local.get $0 i32.load offset=4 @@ -2067,7 +2062,6 @@ i32.const 1344 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2103,7 +2097,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store global.get $~lib/memory/__stack_pointer @@ -2122,7 +2115,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2158,7 +2150,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -2175,7 +2166,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2222,7 +2212,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -2240,7 +2229,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2287,7 +2275,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -2305,7 +2292,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2344,7 +2330,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer @@ -2361,7 +2346,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2389,7 +2373,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=24 global.get $~lib/memory/__stack_pointer @@ -2406,7 +2389,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2434,7 +2416,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer @@ -2453,7 +2434,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2487,7 +2467,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer @@ -2506,7 +2485,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2545,7 +2523,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -2563,7 +2540,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2611,7 +2587,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=40 global.get $~lib/memory/__stack_pointer @@ -2633,7 +2608,6 @@ local.tee $0 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2673,7 +2647,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=48 global.get $~lib/memory/__stack_pointer @@ -2692,7 +2665,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2723,7 +2695,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -2740,7 +2711,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2779,7 +2749,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=56 global.get $~lib/memory/__stack_pointer @@ -2797,7 +2766,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -2845,7 +2813,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer @@ -2863,7 +2830,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2893,7 +2859,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -2911,7 +2876,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2941,7 +2905,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer @@ -2959,7 +2922,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -2971,7 +2933,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=76 global.get $~lib/memory/__stack_pointer @@ -3008,7 +2969,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3023,7 +2983,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer @@ -3062,7 +3021,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3083,7 +3041,6 @@ local.get $1 i32.const 0 i32.store - local.get $0 local.get $1 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -3123,7 +3080,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 0 call $field-initialization/SomeObject#constructor @@ -3147,7 +3103,6 @@ local.get $1 i32.const 1680 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=108 global.get $~lib/memory/__stack_pointer @@ -3189,7 +3144,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 @@ -3212,7 +3166,6 @@ local.get $1 i32.const 0 i32.store offset=4 - local.get $0 local.get $1 i32.store offset=116 global.get $~lib/memory/__stack_pointer @@ -3272,7 +3225,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer call $field-initialization/SomeOtherObject#constructor local.tee $1 @@ -3307,7 +3259,6 @@ local.get $1 i32.const 1776 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=124 global.get $~lib/memory/__stack_pointer @@ -3372,7 +3323,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -3420,7 +3370,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $1 i32.store offset=128 global.get $~lib/memory/__stack_pointer @@ -3438,7 +3387,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 24 @@ -3459,7 +3407,6 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=136 global.get $~lib/memory/__stack_pointer @@ -3477,7 +3424,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 25 @@ -3507,7 +3453,6 @@ local.get $1 local.get $2 call $~lib/rt/itcms/__link - local.get $0 local.get $1 i32.store offset=144 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/field.debug.wat b/tests/compiler/field.debug.wat index e3eb93cf33..aab5de284e 100644 --- a/tests/compiler/field.debug.wat +++ b/tests/compiler/field.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2363,7 +2338,6 @@ call $~lib/rt/itcms/__link ) (func $field/NoStaticConflict.a (param $v i32) - nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2385,16 +2359,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2458,7 +2430,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $field/NoStaticConflict~visit (param $0 i32) (param $1 i32) (local $2 i32) @@ -2687,27 +2658,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/field.release.wat b/tests/compiler/field.release.wat index 051ff3e7fd..e272877b64 100644 --- a/tests/compiler/field.release.wat +++ b/tests/compiler/field.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1633,7 +1631,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -1655,7 +1652,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1684,7 +1680,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1702,7 +1697,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 0 i32.const 1 call $~lib/rt/itcms/__new @@ -1710,7 +1704,6 @@ i32.const 1456 i32.const 0 memory.copy - local.get $2 local.get $3 i32.store i32.const 16 @@ -1748,7 +1741,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1810,23 +1802,20 @@ block $invalid block $~lib/array/Array block $~lib/array/Array<~lib/string/String> - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner2 $folding-inner2 $~lib/array/Array<~lib/string/String> $~lib/array/Array $invalid end return end return end - unreachable + return end global.get $~lib/memory/__stack_pointer i32.const 4 diff --git a/tests/compiler/for.debug.wat b/tests/compiler/for.debug.wat index 0780c263e1..b83cf2740a 100644 --- a/tests/compiler/for.debug.wat +++ b/tests/compiler/for.debug.wat @@ -114,7 +114,6 @@ i32.const 0 i32.gt_s if - nop local.get $i i32.const 1 i32.sub @@ -481,37 +480,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -737,22 +734,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -966,27 +961,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -1004,28 +997,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1350,27 +1341,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1379,37 +1368,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1499,7 +1486,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1568,15 +1554,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1645,15 +1629,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1661,21 +1643,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1683,27 +1663,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1872,39 +1850,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1923,31 +1899,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2826,16 +2800,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3067,7 +3039,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/for.release.wat b/tests/compiler/for.release.wat index 4b2102ef79..792073686e 100644 --- a/tests/compiler/for.release.wat +++ b/tests/compiler/for.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1869,7 +1867,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1897,7 +1894,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-call.debug.wat b/tests/compiler/function-call.debug.wat index 03fc231e29..067a7f4fc0 100644 --- a/tests/compiler/function-call.debug.wat +++ b/tests/compiler/function-call.debug.wat @@ -59,10 +59,8 @@ (export "memory" (memory $0)) (start $~start) (func $start:function-call~anonymous|0 - nop ) (func $start:function-call~anonymous|1 - nop ) (func $start:function-call~anonymous|2 (param $a i32) (param $b i32) (result i32) local.get $a @@ -130,37 +128,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -386,22 +382,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -615,27 +609,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -653,28 +645,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -999,27 +989,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1028,37 +1016,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1148,7 +1134,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1217,15 +1202,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1294,15 +1277,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1310,21 +1291,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1332,27 +1311,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1521,39 +1498,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1572,31 +1547,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2306,7 +2279,6 @@ return ) (func $function-call/Foo#fnVoid (param $this i32) - nop ) (func $function-call/Foo#fnThis (param $this i32) (result i32) local.get $this @@ -2349,7 +2321,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/function-call.release.wat b/tests/compiler/function-call.release.wat index 3c3adb890c..3260e51904 100644 --- a/tests/compiler/function-call.release.wat +++ b/tests/compiler/function-call.release.wat @@ -57,7 +57,6 @@ (export "memory" (memory $0)) (start $~start) (func $start:function-call~anonymous|0 - nop ) (func $start:function-call~anonymous|2 (param $0 i32) (param $1 i32) (result i32) local.get $0 @@ -1066,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1099,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1409,7 +1406,6 @@ local.get $0 ) (func $function-call/Foo#fnVoid (param $0 i32) - nop ) (func $function-call/Foo#fnRet (param $0 i32) (param $1 i32) (param $2 i32) (result i32) i32.const 3 @@ -1581,7 +1577,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1609,7 +1604,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/function-expression.debug.wat b/tests/compiler/function-expression.debug.wat index b74ccddb8d..4d60cddafc 100644 --- a/tests/compiler/function-expression.debug.wat +++ b/tests/compiler/function-expression.debug.wat @@ -77,7 +77,6 @@ return ) (func $start:function-expression~someName|2 - nop ) (func $start:function-expression~anonymous|3 (result i32) i32.const 1 @@ -287,37 +286,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 640 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 640 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -543,22 +540,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -772,27 +767,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -810,28 +803,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1156,27 +1147,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1185,37 +1174,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1305,7 +1292,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1374,15 +1360,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1451,15 +1435,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1467,21 +1449,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1489,27 +1469,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1678,39 +1656,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1729,31 +1705,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2614,7 +2588,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/function-expression.release.wat b/tests/compiler/function-expression.release.wat index d0b5083e9d..b9e8e461a9 100644 --- a/tests/compiler/function-expression.release.wat +++ b/tests/compiler/function-expression.release.wat @@ -80,7 +80,6 @@ local.get $0 ) (func $start:function-expression~someName|2 - nop ) (func $start:function-expression~anonymous|3 (result i32) i32.const 1 @@ -1096,7 +1095,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1129,7 +1127,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1468,23 +1465,20 @@ block $folding-inner1 block $folding-inner0 block $invalid - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner1 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner0 $folding-inner1 $invalid end return end return end - unreachable + return end unreachable end @@ -1538,397 +1532,390 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const 1 + i32.const 1056 + i32.load + call_indirect (type $2) + i32.const 1 + i32.ne + if i32.const 0 - i32.store - i32.const 1 - i32.const 1056 - i32.load - call_indirect (type $2) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 4 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 2 - i32.const 1152 - i32.load - call_indirect (type $2) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 9 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - i32.const 1184 - i32.load - call_indirect (type $3) - i32.const 1216 - i32.load - call_indirect (type $0) - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 16 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1248 - i32.store + i32.const 1088 + i32.const 4 i32.const 1 - i32.const 2 - i32.const 1248 - i32.load - call_indirect (type $1) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1280 - i32.store + call $~lib/builtins/abort + unreachable + end + i32.const 2 + i32.const 1152 + i32.load + call_indirect (type $2) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 9 i32.const 1 - i32.const 2 - i32.const 1280 - i32.load - call_indirect (type $1) + call $~lib/builtins/abort + unreachable + end + i32.const 1184 + i32.load + call_indirect (type $3) + i32.const 1216 + i32.load + call_indirect (type $0) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 16 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1312 - i32.store + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1248 + i32.store + i32.const 1 + i32.const 2 + i32.const 1248 + i32.load + call_indirect (type $1) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 21 i32.const 1 - i32.const 2 - i32.const 1312 - i32.load - call_indirect (type $1) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1280 + i32.store + i32.const 1 + i32.const 2 + i32.const 1280 + i32.load + call_indirect (type $1) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 22 i32.const 1 - i32.const 2 - i32.const 1344 - i32.load - call_indirect (type $1) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 34 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1312 + i32.store + i32.const 1 + i32.const 2 + i32.const 1312 + i32.load + call_indirect (type $1) + i32.const 42 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 23 i32.const 1 - i32.const 2 - i32.const 1376 - i32.load - call_indirect (type $1) + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1344 + i32.load + call_indirect (type $1) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 34 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1376 + i32.load + call_indirect (type $1) + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 35 i32.const 1 - i32.const 2 - i32.const 1408 - i32.load - call_indirect (type $1) - i32.const 42 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 36 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 2 + i32.const 1408 + i32.load + call_indirect (type $1) + i32.const 42 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1504 - i32.load - call_indirect (type $0) - local.tee $0 - i32.store + i32.const 1088 + i32.const 36 i32.const 1 - local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1504 + i32.load + call_indirect (type $0) + local.tee $0 + i32.store + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.load + call_indirect (type $0) + local.tee $0 + i32.store offset=4 + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 34924 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1716 + i32.const 1712 + i32.store + i32.const 1720 + i32.const 1712 + i32.store + i32.const 1712 + global.set $~lib/rt/itcms/pinSpace + i32.const 1748 + i32.const 1744 + i32.store + i32.const 1752 + i32.const 1744 + i32.store + i32.const 1744 + global.set $~lib/rt/itcms/toSpace + i32.const 1892 + i32.const 1888 + i32.store + i32.const 1896 + i32.const 1888 + i32.store + i32.const 1888 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 2156 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2032 + i32.store offset=8 + local.get $1 + i32.const 2032 + i32.store + local.get $1 + i32.eqz + if + i32.const 0 + i32.const 1664 + i32.const 295 + i32.const 14 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/rt/itcms/white + i32.const 2016 + i32.load + i32.const 3 + i32.and + i32.eq + if + local.get $1 + i32.const 20 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1568 - i32.load - call_indirect (type $0) + i32.load offset=4 + i32.const 3 + i32.and local.tee $0 - i32.store offset=4 - i32.const 1 - local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne + global.get $~lib/rt/itcms/white + i32.eqz + i32.eq if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 34924 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1716 - i32.const 1712 - i32.store - i32.const 1720 - i32.const 1712 - i32.store - i32.const 1712 - global.set $~lib/rt/itcms/pinSpace - i32.const 1748 - i32.const 1744 - i32.store - i32.const 1752 - i32.const 1744 - i32.store - i32.const 1744 - global.set $~lib/rt/itcms/toSpace - i32.const 1892 - i32.const 1888 - i32.store - i32.const 1896 - i32.const 1888 - i32.store - i32.const 1888 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $__inlined_func$function-expression/testField$4 - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 2156 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2032 - i32.store offset=8 - local.get $1 - i32.const 2032 - i32.store - local.get $1 - i32.eqz - if - i32.const 0 - i32.const 1664 - i32.const 295 - i32.const 14 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/rt/itcms/white - i32.const 2016 - i32.load - i32.const 3 - i32.and - i32.eq - if - local.get $1 - i32.const 20 - i32.sub - i32.load offset=4 - i32.const 3 - i32.and - local.tee $0 - global.get $~lib/rt/itcms/white - i32.eqz - i32.eq - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - else - global.get $~lib/rt/itcms/state - i32.const 1 - i32.eq - local.get $0 - i32.const 3 - i32.eq - i32.and - if - i32.const 2012 - call $~lib/rt/itcms/Object#makeGray - end - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - i32.load - call_indirect (type $0) - local.tee $0 - i32.store offset=8 + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray + else + global.get $~lib/rt/itcms/state i32.const 1 + i32.eq local.get $0 - i32.load - call_indirect (type $2) - i32.const 25 - i32.ne + i32.const 3 + i32.eq + i32.and if - i32.const 0 - i32.const 1088 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.const 2012 + call $~lib/rt/itcms/Object#makeGray end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer end - call $function-expression/semanticallyAnonymous - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + i32.load + call_indirect (type $0) + local.tee $0 + i32.store offset=8 + i32.const 1 + local.get $0 + i32.load + call_indirect (type $2) + i32.const 25 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $function-expression/semanticallyAnonymous + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34944 i32.const 34992 diff --git a/tests/compiler/function-types.release.wat b/tests/compiler/function-types.release.wat index b0207d6d3e..726e8230ce 100644 --- a/tests/compiler/function-types.release.wat +++ b/tests/compiler/function-types.release.wat @@ -168,12 +168,10 @@ i32.const 1056 i32.load call_indirect (type $0) - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const 3 i32.ne if diff --git a/tests/compiler/getter-call.debug.wat b/tests/compiler/getter-call.debug.wat index 5b7c797179..593954b022 100644 --- a/tests/compiler/getter-call.debug.wat +++ b/tests/compiler/getter-call.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2300,7 +2275,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/getter-call.release.wat b/tests/compiler/getter-call.release.wat index 3c2bec13dc..69870f1d3b 100644 --- a/tests/compiler/getter-call.release.wat +++ b/tests/compiler/getter-call.release.wat @@ -1030,7 +1030,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1063,7 +1062,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1489,7 +1487,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1507,7 +1504,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1535,14 +1531,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/heap.debug.wat b/tests/compiler/heap.debug.wat index d28d106ccc..3b82eebc93 100644 --- a/tests/compiler/heap.debug.wat +++ b/tests/compiler/heap.debug.wat @@ -221,27 +221,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -259,28 +257,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -605,27 +601,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -634,37 +628,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -754,7 +746,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -823,15 +814,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -900,15 +889,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -916,21 +903,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -938,27 +923,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add diff --git a/tests/compiler/heap.release.wat b/tests/compiler/heap.release.wat index caf0699557..14a0518c9b 100644 --- a/tests/compiler/heap.release.wat +++ b/tests/compiler/heap.release.wat @@ -1130,7 +1130,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 call $~lib/rt/tlsf/checkUsedBlock local.tee $0 @@ -1139,7 +1138,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $0 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/import.debug.wat b/tests/compiler/import.debug.wat index c86db7ef30..bec85bb9df 100644 --- a/tests/compiler/import.debug.wat +++ b/tests/compiler/import.debug.wat @@ -31,10 +31,8 @@ return ) (func $export/ns.two - nop ) (func $export-default/theDefault - nop ) (func $start:import global.get $export/a diff --git a/tests/compiler/incremental-gc/call-indirect.debug.wat b/tests/compiler/incremental-gc/call-indirect.debug.wat index 5df4fbc636..8af875461c 100644 --- a/tests/compiler/incremental-gc/call-indirect.debug.wat +++ b/tests/compiler/incremental-gc/call-indirect.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 64 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 64 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -1645,16 +1620,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2391,7 +2364,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28incremental-gc/call-indirect/A%29=>i32>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/incremental-gc/call-indirect.release.wat b/tests/compiler/incremental-gc/call-indirect.release.wat index 04969928ca..351beb9151 100644 --- a/tests/compiler/incremental-gc/call-indirect.release.wat +++ b/tests/compiler/incremental-gc/call-indirect.release.wat @@ -1033,7 +1033,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1066,7 +1065,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1690,7 +1688,6 @@ i32.add global.set $~lib/rt/itcms/threshold global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1726,7 +1723,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer @@ -1734,12 +1730,10 @@ i32.store offset=4 local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34384 @@ -1808,12 +1802,10 @@ i32.const 1440 i32.load call_indirect (type $1) - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34384 diff --git a/tests/compiler/infer-array.debug.wat b/tests/compiler/infer-array.debug.wat index f5ce39f4e8..4bbaa8d706 100644 --- a/tests/compiler/infer-array.debug.wat +++ b/tests/compiler/infer-array.debug.wat @@ -113,37 +113,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -369,22 +367,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -598,27 +594,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -636,28 +630,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -982,27 +974,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1011,37 +1001,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1131,7 +1119,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1200,15 +1187,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1277,15 +1262,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1293,21 +1276,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1315,27 +1296,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1504,39 +1483,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1555,31 +1532,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2534,7 +2509,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -4287,27 +4261,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -4359,27 +4331,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -4457,27 +4427,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/infer-array.release.wat b/tests/compiler/infer-array.release.wat index 55db29d7ed..2773042932 100644 --- a/tests/compiler/infer-array.release.wat +++ b/tests/compiler/infer-array.release.wat @@ -1071,7 +1071,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1104,7 +1103,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1890,12 +1888,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer @@ -1969,7 +1965,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1998,7 +1993,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2424,7 +2418,6 @@ local.tee $1 i32.store offset=28 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2441,7 +2434,6 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -2459,7 +2451,6 @@ local.tee $1 i32.store offset=44 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2476,7 +2467,6 @@ i32.const 1 local.get $1 call $~lib/array/Array#__set - local.get $2 local.get $3 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -2490,7 +2480,6 @@ local.tee $0 i32.store offset=56 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2507,7 +2496,6 @@ i32.const 1 i32.const 0 call $~lib/array/Array#__set - local.get $1 local.get $2 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -2611,7 +2599,6 @@ local.get $0 call $~lib/array/Array#__get global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -2636,7 +2623,6 @@ i32.const 2016 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=92 global.get $~lib/memory/__stack_pointer @@ -2725,7 +2711,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -2740,7 +2725,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/infer-generic.debug.wat b/tests/compiler/infer-generic.debug.wat index 681057cfde..dbbf12c951 100644 --- a/tests/compiler/infer-generic.debug.wat +++ b/tests/compiler/infer-generic.debug.wat @@ -140,37 +140,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 272 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 272 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -396,22 +394,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -625,27 +621,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -663,28 +657,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1009,27 +1001,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1038,37 +1028,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1158,7 +1146,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1227,15 +1214,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1304,15 +1289,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1320,21 +1303,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1342,27 +1323,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1531,39 +1510,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1582,31 +1559,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2379,7 +2354,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/infer-generic.release.wat b/tests/compiler/infer-generic.release.wat index a76738b5c8..db2d8f2c77 100644 --- a/tests/compiler/infer-generic.release.wat +++ b/tests/compiler/infer-generic.release.wat @@ -1054,7 +1054,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1087,7 +1086,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1767,7 +1765,6 @@ i32.const 1520 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1786,7 +1783,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1815,7 +1811,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1828,7 +1823,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/inlining-blocklocals.debug.wat b/tests/compiler/inlining-blocklocals.debug.wat index 5864584e5f..fd5ccaf5c2 100644 --- a/tests/compiler/inlining-blocklocals.debug.wat +++ b/tests/compiler/inlining-blocklocals.debug.wat @@ -24,33 +24,31 @@ (local $c i32) i32.const 1 local.set $a - block $inlining-blocklocals/theCall|inlined.0 - local.get $a - local.tee $1 - i32.const 1 - i32.add - local.set $a - local.get $1 - local.set $a|3 - global.get $inlining-blocklocals/b - local.tee $2 - i32.const 1 - i32.add - global.set $inlining-blocklocals/b - local.get $2 - local.set $b - local.get $a - i32.const 1 - i32.add - local.tee $a - local.set $c - local.get $a|3 - global.set $inlining-blocklocals/theCall_a - local.get $b - global.set $inlining-blocklocals/theCall_b - local.get $c - global.set $inlining-blocklocals/theCall_c - end + local.get $a + local.tee $1 + i32.const 1 + i32.add + local.set $a + local.get $1 + local.set $a|3 + global.get $inlining-blocklocals/b + local.tee $2 + i32.const 1 + i32.add + global.set $inlining-blocklocals/b + local.get $2 + local.set $b + local.get $a + i32.const 1 + i32.add + local.tee $a + local.set $c + local.get $a|3 + global.set $inlining-blocklocals/theCall_a + local.get $b + global.set $inlining-blocklocals/theCall_b + local.get $c + global.set $inlining-blocklocals/theCall_c global.get $inlining-blocklocals/theCall_a i32.const 1 i32.eq diff --git a/tests/compiler/inlining-recursive.debug.wat b/tests/compiler/inlining-recursive.debug.wat index 689c7953ae..4c1161873d 100644 --- a/tests/compiler/inlining-recursive.debug.wat +++ b/tests/compiler/inlining-recursive.debug.wat @@ -17,8 +17,6 @@ call $inlining-recursive/bar ) (func $inlining-recursive/bar - block $inlining-recursive/bar|inlined.0 - call $inlining-recursive/baz - end + call $inlining-recursive/baz ) ) diff --git a/tests/compiler/inlining.debug.wat b/tests/compiler/inlining.debug.wat index 579d564a9a..4613c1a7a4 100644 --- a/tests/compiler/inlining.debug.wat +++ b/tests/compiler/inlining.debug.wat @@ -241,10 +241,8 @@ i32.const 4 i32.eq drop - block $inlining/func_iv|inlined.0 - i32.const 0 - local.set $a|19 - end + i32.const 0 + local.set $a|19 i32.const 2 i32.const 1 global.set $~argumentsLength @@ -365,37 +363,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -621,22 +617,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -850,27 +844,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -888,28 +880,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1234,27 +1224,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1263,37 +1251,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1383,7 +1369,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1452,15 +1437,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1529,15 +1512,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1545,21 +1526,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1567,27 +1546,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1756,39 +1733,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1807,31 +1782,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2814,7 +2787,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -2903,93 +2875,89 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - block $inlining/Bar#constructor|inlined.0 (result i32) - i32.const 0 - local.set $this - i32.const 4 - local.set $f - local.get $this - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $this - i32.store - end - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 3 - call $inlining/Bar#set:d - local.get $this - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Bar#set:e + i32.const 0 + local.set $this + i32.const 4 + local.set $f + local.get $this + i32.eqz + if global.get $~lib/memory/__stack_pointer - block $inlining/Baz#constructor|inlined.0 (result i32) - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $this|2 - i32.store offset=8 - i32.const 2 - local.set $c - local.get $this|2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $this|2 - i32.store offset=8 - end - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 1 - call $inlining/Baz#set:a - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - i32.const 0 - call $inlining/Baz#set:b - local.get $this|2 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $c - call $inlining/Baz#set:b - local.get $this|2 - end + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new local.tee $this i32.store - local.get $this - local.set $5 + end + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 3 + call $inlining/Bar#set:d + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $inlining/Bar#set:e + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $this|2 + i32.store offset=8 + i32.const 2 + local.set $c + local.get $this|2 + i32.eqz + if global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $f - call $inlining/Bar#set:e - local.get $this + i32.const 8 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $this|2 + i32.store offset=8 end + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 1 + call $inlining/Baz#set:a + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + i32.const 0 + call $inlining/Baz#set:b + local.get $this|2 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $c + call $inlining/Baz#set:b + local.get $this|2 + local.tee $this + i32.store + local.get $this + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $f + call $inlining/Bar#set:e + local.get $this local.tee $bar i32.store offset=12 local.get $bar diff --git a/tests/compiler/inlining.release.wat b/tests/compiler/inlining.release.wat index 67e09d9b8e..bcc7cbc9ed 100644 --- a/tests/compiler/inlining.release.wat +++ b/tests/compiler/inlining.release.wat @@ -1044,7 +1044,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1077,7 +1076,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1619,7 +1617,6 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.const 6 @@ -1639,7 +1636,6 @@ i32.const 0 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 @@ -1671,7 +1667,6 @@ local.get $0 i32.const 2 i32.store offset=4 - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -1680,7 +1675,6 @@ local.get $0 i32.const 4 i32.store offset=12 - local.get $1 local.get $0 i32.store offset=12 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/instanceof.debug.wat b/tests/compiler/instanceof.debug.wat index c63ffbe7b4..79d6b3b7cb 100644 --- a/tests/compiler/instanceof.debug.wat +++ b/tests/compiler/instanceof.debug.wat @@ -115,37 +115,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -371,22 +369,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -600,27 +596,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -638,28 +632,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -984,27 +976,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1013,37 +1003,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1133,7 +1121,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1202,15 +1189,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1279,15 +1264,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1295,21 +1278,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1317,27 +1298,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1506,39 +1485,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1557,31 +1534,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2291,7 +2266,6 @@ return ) (func $instanceof/A#checkInstanceof (param $this i32) - nop ) (func $instanceof/isI32 (param $v i32) (result i32) i32.const 1 @@ -4166,7 +4140,6 @@ call $~instanceof|instanceof/C end if - nop end global.get $~lib/memory/__stack_pointer i32.const 4 @@ -4627,7 +4600,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/instanceof.release.wat b/tests/compiler/instanceof.release.wat index 17c9936fff..58abc45ae3 100644 --- a/tests/compiler/instanceof.release.wat +++ b/tests/compiler/instanceof.release.wat @@ -1132,7 +1132,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1165,7 +1164,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2282,7 +2280,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2318,7 +2315,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2344,7 +2340,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2380,7 +2375,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1095.debug.wat b/tests/compiler/issues/1095.debug.wat index abf72336fb..8d55faf3bc 100644 --- a/tests/compiler/issues/1095.debug.wat +++ b/tests/compiler/issues/1095.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2374,7 +2349,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $issues/1095/Foo~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/issues/1095.release.wat b/tests/compiler/issues/1095.release.wat index 73d239a859..b5acbcd83e 100644 --- a/tests/compiler/issues/1095.release.wat +++ b/tests/compiler/issues/1095.release.wat @@ -1035,7 +1035,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1068,7 +1067,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1590,23 +1588,20 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $invalid end return end return end - unreachable + return end unreachable end @@ -1686,7 +1681,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1715,7 +1709,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1225.debug.wat b/tests/compiler/issues/1225.debug.wat index f6d76abeff..73eec5c752 100644 --- a/tests/compiler/issues/1225.debug.wat +++ b/tests/compiler/issues/1225.debug.wat @@ -109,37 +109,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -365,22 +363,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -594,27 +590,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -632,28 +626,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -978,27 +970,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1007,37 +997,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1127,7 +1115,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1196,15 +1183,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1273,15 +1258,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1289,21 +1272,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1311,27 +1292,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1500,39 +1479,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1551,31 +1528,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2317,16 +2292,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2426,7 +2399,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/1225.release.wat b/tests/compiler/issues/1225.release.wat index 454dc7a7a0..e790c53130 100644 --- a/tests/compiler/issues/1225.release.wat +++ b/tests/compiler/issues/1225.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1593,12 +1591,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $issues/1225/viaThis (result i32) (local $0 i32) @@ -1626,11 +1622,9 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/issues/1699.debug.wat b/tests/compiler/issues/1699.debug.wat index ab87d63ad6..bec13bbd0b 100644 --- a/tests/compiler/issues/1699.debug.wat +++ b/tests/compiler/issues/1699.debug.wat @@ -96,37 +96,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -352,22 +350,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -581,27 +577,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -619,28 +613,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -965,27 +957,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -994,37 +984,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1114,7 +1102,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1183,15 +1170,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1260,15 +1245,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1276,21 +1259,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1298,27 +1279,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1487,39 +1466,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1538,31 +1515,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2484,7 +2459,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3215,27 +3189,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/issues/1699.release.wat b/tests/compiler/issues/1699.release.wat index 9ae12ae404..f33b7a54aa 100644 --- a/tests/compiler/issues/1699.release.wat +++ b/tests/compiler/issues/1699.release.wat @@ -1042,7 +1042,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1075,7 +1074,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1639,18 +1637,144 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 28 - memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1740 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 32 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + call $issues/1699/MultiAssignmentTest#constructor + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $0 + i32.const 1 + local.get $2 + call $~lib/array/Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 + i32.const 0 + local.get $2 + call $~lib/array/Array#__set + loop $for-loop|0 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -1658,228 +1782,99 @@ i32.lt_s br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 0 i32.store - local.get $0 - i32.const 0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 i32.store local.get $0 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 32 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.store offset=12 + i32.load offset=12 + local.set $2 global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - call $issues/1699/MultiAssignmentTest#constructor - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $0 - i32.const 1 - local.get $2 - call $~lib/array/Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - i32.const 0 + local.get $1 local.get $2 - call $~lib/array/Array#__set - loop $for-loop|0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1740 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=12 - local.set $2 + i32.lt_s + if global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $issues/1699/MultiAssignmentTest#constructor + local.tee $2 + i32.store offset=24 local.get $1 - local.get $2 - i32.lt_s + i32.const 1 + i32.gt_s if global.get $~lib/memory/__stack_pointer - call $issues/1699/MultiAssignmentTest#constructor - local.tee $2 - i32.store offset=24 - local.get $1 - i32.const 1 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=8 - local.get $0 - local.get $1 - local.get $2 - call $~lib/array/Array#__set - end + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + local.get $0 local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $2 + call $~lib/array/Array#__set end + local.get $1 + i32.const 1 + i32.add + local.set $1 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.get $1 + i32.ne + if i32.const 0 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.get $1 - i32.ne - if - i32.const 0 - i32.const 1680 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/array/Array#__get - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/array/Array#__get - local.get $1 - i32.eq - if - i32.const 0 - i32.const 1680 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1680 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/array/Array#__get + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/array/Array#__get + local.get $1 + i32.eq + if + i32.const 0 + i32.const 1680 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34528 i32.const 34576 @@ -2014,7 +2009,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2043,7 +2037,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/1714.debug.wat b/tests/compiler/issues/1714.debug.wat index 03db602017..acce532285 100644 --- a/tests/compiler/issues/1714.debug.wat +++ b/tests/compiler/issues/1714.debug.wat @@ -124,40 +124,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/issues/2166.debug.wat b/tests/compiler/issues/2166.debug.wat index 78cdee643b..6d3ac1a299 100644 --- a/tests/compiler/issues/2166.debug.wat +++ b/tests/compiler/issues/2166.debug.wat @@ -98,37 +98,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -354,22 +352,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -583,27 +579,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -621,28 +615,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -967,27 +959,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -996,37 +986,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1116,7 +1104,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1185,15 +1172,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1262,15 +1247,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1278,21 +1261,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1300,27 +1281,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1489,39 +1468,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1540,31 +1517,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2353,40 +2328,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2416,7 +2389,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2166.release.wat b/tests/compiler/issues/2166.release.wat index 05a0ac6baa..62bd8230fe 100644 --- a/tests/compiler/issues/2166.release.wat +++ b/tests/compiler/issues/2166.release.wat @@ -1036,7 +1036,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1069,7 +1068,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1476,7 +1474,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -1494,7 +1491,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1522,14 +1518,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2322/index.debug.wat b/tests/compiler/issues/2322/index.debug.wat index f3a89cf13e..63522c906a 100644 --- a/tests/compiler/issues/2322/index.debug.wat +++ b/tests/compiler/issues/2322/index.debug.wat @@ -92,37 +92,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -348,22 +346,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -577,27 +573,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -615,28 +609,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -961,27 +953,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -990,37 +980,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1110,7 +1098,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1179,15 +1166,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1256,15 +1241,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,21 +1255,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1294,27 +1275,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1483,39 +1462,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1534,31 +1511,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2273,7 +2248,6 @@ i32.store ) (func $issues/2322/lib/test (param $t i32) - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2299,7 +2273,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2322/index.release.wat b/tests/compiler/issues/2322/index.release.wat index a33403cbc1..fda55107c4 100644 --- a/tests/compiler/issues/2322/index.release.wat +++ b/tests/compiler/issues/2322/index.release.wat @@ -1026,7 +1026,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1059,7 +1058,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1622,7 +1620,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1651,7 +1648,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/issues/2622.debug.wat b/tests/compiler/issues/2622.debug.wat index 470136407c..134f40c571 100644 --- a/tests/compiler/issues/2622.debug.wat +++ b/tests/compiler/issues/2622.debug.wat @@ -95,37 +95,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -351,22 +349,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -580,27 +576,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -618,28 +612,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -964,27 +956,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -993,37 +983,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1113,7 +1101,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1182,15 +1169,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1259,15 +1244,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1275,21 +1258,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1297,27 +1278,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1486,39 +1465,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1537,31 +1514,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2368,7 +2343,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/issues/2622.release.wat b/tests/compiler/issues/2622.release.wat index 2a8c6bd0e0..c2bec41f20 100644 --- a/tests/compiler/issues/2622.release.wat +++ b/tests/compiler/issues/2622.release.wat @@ -1065,7 +1065,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1098,7 +1097,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/issues/2707.debug.wat b/tests/compiler/issues/2707.debug.wat index 540cae264c..90ba543503 100644 --- a/tests/compiler/issues/2707.debug.wat +++ b/tests/compiler/issues/2707.debug.wat @@ -101,37 +101,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -357,22 +355,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -586,27 +582,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -624,28 +618,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -970,27 +962,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -999,37 +989,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1119,7 +1107,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1188,15 +1175,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1265,15 +1250,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1281,21 +1264,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1303,27 +1284,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1492,39 +1471,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1543,31 +1520,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2384,7 +2359,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/issues/2707.release.wat b/tests/compiler/issues/2707.release.wat index fe70f48f10..cfe04d539a 100644 --- a/tests/compiler/issues/2707.release.wat +++ b/tests/compiler/issues/2707.release.wat @@ -1038,7 +1038,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1071,7 +1070,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1528,14 +1526,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $0 i32.const 1088 i32.const 16 memory.copy - local.get $1 local.get $0 i32.store i32.const 4 diff --git a/tests/compiler/issues/2873.debug.wat b/tests/compiler/issues/2873.debug.wat index 03c0f6d504..cb6ced6aba 100644 --- a/tests/compiler/issues/2873.debug.wat +++ b/tests/compiler/issues/2873.debug.wat @@ -196,454 +196,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 1104 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 1104 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 1104 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 1104 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -659,61 +646,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1144 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1144 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1144 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1144 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -1010,22 +995,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -1091,22 +1074,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -1290,115 +1271,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 232 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 928 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 232 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 928 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -1716,37 +1693,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 1632 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 1632 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -1972,22 +1947,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -2201,27 +2174,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -2239,28 +2210,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -2585,27 +2554,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -2614,37 +2581,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -2734,7 +2699,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -2803,15 +2767,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -2880,15 +2842,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -2896,21 +2856,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -2918,27 +2876,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -3107,39 +3063,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -3158,31 +3112,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -3976,40 +3928,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -4247,7 +4197,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/issues/2873.release.wat b/tests/compiler/issues/2873.release.wat index aba1809221..7d78da32e1 100644 --- a/tests/compiler/issues/2873.release.wat +++ b/tests/compiler/issues/2873.release.wat @@ -2245,7 +2245,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -2278,7 +2277,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/localinit.debug.wat b/tests/compiler/localinit.debug.wat index 3fbcc8ba98..c97e35fdd2 100644 --- a/tests/compiler/localinit.debug.wat +++ b/tests/compiler/localinit.debug.wat @@ -124,24 +124,22 @@ (func $localinit/initInWhileOr (param $cond i32) (local $a i32) (local $b i32) - block $while-break|0 - loop $while-continue|0 - local.get $cond - if (result i32) - i32.const 1 - else - i32.const 1 - local.tee $a - end - if (result i32) - i32.const 1 - else - i32.const 1 - local.tee $b - end - if - return - end + loop $while-continue|0 + local.get $cond + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $a + end + if (result i32) + i32.const 1 + else + i32.const 1 + local.tee $b + end + if + return end end local.get $a diff --git a/tests/compiler/logical.debug.wat b/tests/compiler/logical.debug.wat index 6386ecb2ef..c5d2e58444 100644 --- a/tests/compiler/logical.debug.wat +++ b/tests/compiler/logical.debug.wat @@ -121,37 +121,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -377,22 +375,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -606,27 +602,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -644,28 +638,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -990,27 +982,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1019,37 +1009,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1139,7 +1127,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1208,15 +1195,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1285,15 +1270,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1301,21 +1284,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1323,27 +1304,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1512,39 +1491,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1563,31 +1540,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2370,7 +2345,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/logical.release.wat b/tests/compiler/logical.release.wat index 6bd42c186f..698a99aac3 100644 --- a/tests/compiler/logical.release.wat +++ b/tests/compiler/logical.release.wat @@ -1041,7 +1041,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1074,7 +1073,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/managed-cast.debug.wat b/tests/compiler/managed-cast.debug.wat index 594571b394..38367f2b11 100644 --- a/tests/compiler/managed-cast.debug.wat +++ b/tests/compiler/managed-cast.debug.wat @@ -94,37 +94,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -350,22 +348,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -579,27 +575,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -617,28 +611,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -963,27 +955,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -992,37 +982,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1112,7 +1100,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1181,15 +1168,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1258,15 +1243,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1274,21 +1257,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1296,27 +1277,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1485,39 +1464,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1536,31 +1513,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2270,10 +2245,8 @@ return ) (func $managed-cast/Animal#tame (param $this i32) - nop ) (func $managed-cast/Cat#meow (param $this i32) - nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2295,16 +2268,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2364,7 +2335,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/managed-cast.release.wat b/tests/compiler/managed-cast.release.wat index 79b3669b1f..aba3aac064 100644 --- a/tests/compiler/managed-cast.release.wat +++ b/tests/compiler/managed-cast.release.wat @@ -1031,7 +1031,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1064,7 +1063,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1599,7 +1597,6 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 i32.eqz if @@ -1610,7 +1607,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=8 i32.const 0 @@ -1660,7 +1656,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $1 block $__inlined_func$~instanceof|managed-cast/Cat$91 (result i32) global.get $~lib/memory/__stack_pointer local.get $0 @@ -1685,7 +1680,6 @@ call $~lib/builtins/abort unreachable end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1721,7 +1715,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 local.get $0 if local.get $0 @@ -1742,7 +1735,6 @@ i32.const 0 local.set $0 end - local.get $1 local.get $0 i32.store offset=4 local.get $0 @@ -1825,7 +1817,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1850,7 +1841,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1878,14 +1868,12 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/memcpy.debug.wat b/tests/compiler/memcpy.debug.wat index 082eb50187..0435fe9b90 100644 --- a/tests/compiler/memcpy.debug.wat +++ b/tests/compiler/memcpy.debug.wat @@ -100,37 +100,35 @@ (local $84 i32) local.get $dest local.set $ret - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $n + if (result i32) + local.get $src + i32.const 4 + i32.rem_u + else + i32.const 0 + end + if + local.get $dest + local.tee $6 + i32.const 1 + i32.add + local.set $dest + local.get $6 + local.get $src + local.tee $7 + i32.const 1 + i32.add + local.set $src + local.get $7 + i32.load8_u + i32.store8 local.get $n - if (result i32) - local.get $src - i32.const 4 - i32.rem_u - else - i32.const 0 - end - if - local.get $dest - local.tee $6 - i32.const 1 - i32.add - local.set $dest - local.get $6 - local.get $src - local.tee $7 - i32.const 1 - i32.add - local.set $src - local.get $7 - i32.load8_u - i32.store8 - local.get $n - i32.const 1 - i32.sub - local.set $n - br $while-continue|0 - end + i32.const 1 + i32.sub + local.set $n + br $while-continue|0 end end local.get $dest @@ -139,54 +137,52 @@ i32.const 0 i32.eq if - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $n + i32.const 16 + i32.ge_u + if + local.get $dest + local.get $src + i32.load + i32.store + local.get $dest + i32.const 4 + i32.add + local.get $src + i32.const 4 + i32.add + i32.load + i32.store + local.get $dest + i32.const 8 + i32.add + local.get $src + i32.const 8 + i32.add + i32.load + i32.store + local.get $dest + i32.const 12 + i32.add + local.get $src + i32.const 12 + i32.add + i32.load + i32.store + local.get $src + i32.const 16 + i32.add + local.set $src + local.get $dest + i32.const 16 + i32.add + local.set $dest local.get $n i32.const 16 - i32.ge_u - if - local.get $dest - local.get $src - i32.load - i32.store - local.get $dest - i32.const 4 - i32.add - local.get $src - i32.const 4 - i32.add - i32.load - i32.store - local.get $dest - i32.const 8 - i32.add - local.get $src - i32.const 8 - i32.add - i32.load - i32.store - local.get $dest - i32.const 12 - i32.add - local.get $src - i32.const 12 - i32.add - i32.load - i32.store - local.get $src - i32.const 16 - i32.add - local.set $src - local.get $dest - i32.const 16 - i32.add - local.set $dest - local.get $n - i32.const 16 - i32.sub - local.set $n - br $while-continue|1 - end + i32.sub + local.set $n + br $while-continue|1 end end local.get $n @@ -345,149 +341,27 @@ i32.const 3 i32.sub local.set $n - block $while-break|3 - loop $while-continue|3 - local.get $n - i32.const 17 - i32.ge_u - if - local.get $src - i32.const 1 - i32.add - i32.load - local.set $x - local.get $dest - local.get $w - i32.const 24 - i32.shr_u - local.get $x - i32.const 8 - i32.shl - i32.or - i32.store - local.get $src - i32.const 5 - i32.add - i32.load - local.set $w - local.get $dest - i32.const 4 - i32.add - local.get $x - i32.const 24 - i32.shr_u - local.get $w - i32.const 8 - i32.shl - i32.or - i32.store - local.get $src - i32.const 9 - i32.add - i32.load - local.set $x - local.get $dest - i32.const 8 - i32.add - local.get $w - i32.const 24 - i32.shr_u - local.get $x - i32.const 8 - i32.shl - i32.or - i32.store - local.get $src - i32.const 13 - i32.add - i32.load - local.set $w - local.get $dest - i32.const 12 - i32.add - local.get $x - i32.const 24 - i32.shr_u - local.get $w - i32.const 8 - i32.shl - i32.or - i32.store - local.get $src - i32.const 16 - i32.add - local.set $src - local.get $dest - i32.const 16 - i32.add - local.set $dest - local.get $n - i32.const 16 - i32.sub - local.set $n - br $while-continue|3 - end - end - end - br $break|2 - end - local.get $src - i32.load - local.set $w - local.get $dest - local.tee $17 - i32.const 1 - i32.add - local.set $dest - local.get $17 - local.get $src - local.tee $18 - i32.const 1 - i32.add - local.set $src - local.get $18 - i32.load8_u - i32.store8 - local.get $dest - local.tee $19 - i32.const 1 - i32.add - local.set $dest - local.get $19 - local.get $src - local.tee $20 - i32.const 1 - i32.add - local.set $src - local.get $20 - i32.load8_u - i32.store8 - local.get $n - i32.const 2 - i32.sub - local.set $n - block $while-break|4 - loop $while-continue|4 + loop $while-continue|3 local.get $n - i32.const 18 + i32.const 17 i32.ge_u if local.get $src - i32.const 2 + i32.const 1 i32.add i32.load local.set $x local.get $dest local.get $w - i32.const 16 + i32.const 24 i32.shr_u local.get $x - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $src - i32.const 6 + i32.const 5 i32.add i32.load local.set $w @@ -495,15 +369,15 @@ i32.const 4 i32.add local.get $x - i32.const 16 + i32.const 24 i32.shr_u local.get $w - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $src - i32.const 10 + i32.const 9 i32.add i32.load local.set $x @@ -511,15 +385,15 @@ i32.const 8 i32.add local.get $w - i32.const 16 + i32.const 24 i32.shr_u local.get $x - i32.const 16 + i32.const 8 i32.shl i32.or i32.store local.get $src - i32.const 14 + i32.const 13 i32.add i32.load local.set $w @@ -527,10 +401,10 @@ i32.const 12 i32.add local.get $x - i32.const 16 + i32.const 24 i32.shr_u local.get $w - i32.const 16 + i32.const 8 i32.shl i32.or i32.store @@ -546,55 +420,67 @@ i32.const 16 i32.sub local.set $n - br $while-continue|4 + br $while-continue|3 end end + br $break|2 end - br $break|2 - end - local.get $src - i32.load - local.set $w - local.get $dest - local.tee $21 - i32.const 1 - i32.add - local.set $dest - local.get $21 - local.get $src - local.tee $22 - i32.const 1 - i32.add - local.set $src - local.get $22 - i32.load8_u - i32.store8 - local.get $n - i32.const 1 - i32.sub - local.set $n - block $while-break|5 - loop $while-continue|5 + local.get $src + i32.load + local.set $w + local.get $dest + local.tee $17 + i32.const 1 + i32.add + local.set $dest + local.get $17 + local.get $src + local.tee $18 + i32.const 1 + i32.add + local.set $src + local.get $18 + i32.load8_u + i32.store8 + local.get $dest + local.tee $19 + i32.const 1 + i32.add + local.set $dest + local.get $19 + local.get $src + local.tee $20 + i32.const 1 + i32.add + local.set $src + local.get $20 + i32.load8_u + i32.store8 + local.get $n + i32.const 2 + i32.sub + local.set $n + loop $while-continue|4 local.get $n - i32.const 19 + i32.const 18 i32.ge_u if local.get $src - i32.const 3 + i32.const 2 i32.add i32.load local.set $x local.get $dest local.get $w - i32.const 8 + i32.const 16 i32.shr_u local.get $x - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 7 + i32.const 6 i32.add i32.load local.set $w @@ -602,15 +488,15 @@ i32.const 4 i32.add local.get $x - i32.const 8 + i32.const 16 i32.shr_u local.get $w - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 11 + i32.const 10 i32.add i32.load local.set $x @@ -618,15 +504,15 @@ i32.const 8 i32.add local.get $w - i32.const 8 + i32.const 16 i32.shr_u local.get $x - i32.const 24 + i32.const 16 i32.shl i32.or i32.store local.get $src - i32.const 15 + i32.const 14 i32.add i32.load local.set $w @@ -634,10 +520,10 @@ i32.const 12 i32.add local.get $x - i32.const 8 + i32.const 16 i32.shr_u local.get $w - i32.const 24 + i32.const 16 i32.shl i32.or i32.store @@ -653,9 +539,113 @@ i32.const 16 i32.sub local.set $n - br $while-continue|5 + br $while-continue|4 end end + br $break|2 + end + local.get $src + i32.load + local.set $w + local.get $dest + local.tee $21 + i32.const 1 + i32.add + local.set $dest + local.get $21 + local.get $src + local.tee $22 + i32.const 1 + i32.add + local.set $src + local.get $22 + i32.load8_u + i32.store8 + local.get $n + i32.const 1 + i32.sub + local.set $n + loop $while-continue|5 + local.get $n + i32.const 19 + i32.ge_u + if + local.get $src + i32.const 3 + i32.add + i32.load + local.set $x + local.get $dest + local.get $w + i32.const 8 + i32.shr_u + local.get $x + i32.const 24 + i32.shl + i32.or + i32.store + local.get $src + i32.const 7 + i32.add + i32.load + local.set $w + local.get $dest + i32.const 4 + i32.add + local.get $x + i32.const 8 + i32.shr_u + local.get $w + i32.const 24 + i32.shl + i32.or + i32.store + local.get $src + i32.const 11 + i32.add + i32.load + local.set $x + local.get $dest + i32.const 8 + i32.add + local.get $w + i32.const 8 + i32.shr_u + local.get $x + i32.const 24 + i32.shl + i32.or + i32.store + local.get $src + i32.const 15 + i32.add + i32.load + local.set $w + local.get $dest + i32.const 12 + i32.add + local.get $x + i32.const 8 + i32.shr_u + local.get $w + i32.const 24 + i32.shl + i32.or + i32.store + local.get $src + i32.const 16 + i32.add + local.set $src + local.get $dest + i32.const 16 + i32.add + local.set $dest + local.get $n + i32.const 16 + i32.sub + local.set $n + br $while-continue|5 + end end br $break|2 end diff --git a/tests/compiler/memmove.debug.wat b/tests/compiler/memmove.debug.wat index 4d908d2e1e..e325c90617 100644 --- a/tests/compiler/memmove.debug.wat +++ b/tests/compiler/memmove.debug.wat @@ -41,93 +41,87 @@ i32.rem_u i32.eq if - block $while-break|0 - loop $while-continue|0 - local.get $dest - i32.const 8 - i32.rem_u - if - local.get $n - i32.eqz - if - local.get $ret - return - end - local.get $n - i32.const 1 - i32.sub - local.set $n - local.get $dest - local.tee $4 - i32.const 1 - i32.add - local.set $dest - local.get $4 - local.get $src - local.tee $5 - i32.const 1 - i32.add - local.set $src - local.get $5 - i32.load8_u - i32.store8 - br $while-continue|0 - end - end - end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|0 + local.get $dest + i32.const 8 + i32.rem_u + if local.get $n - i32.const 8 - i32.ge_u + i32.eqz if - local.get $dest - local.get $src - i64.load - i64.store - local.get $n - i32.const 8 - i32.sub - local.set $n - local.get $dest - i32.const 8 - i32.add - local.set $dest - local.get $src - i32.const 8 - i32.add - local.set $src - br $while-continue|1 + local.get $ret + return end - end - end - end - block $while-break|2 - loop $while-continue|2 - local.get $n - if + local.get $n + i32.const 1 + i32.sub + local.set $n local.get $dest - local.tee $6 + local.tee $4 i32.const 1 i32.add local.set $dest - local.get $6 + local.get $4 local.get $src - local.tee $7 + local.tee $5 i32.const 1 i32.add local.set $src - local.get $7 + local.get $5 i32.load8_u i32.store8 + br $while-continue|0 + end + end + loop $while-continue|1 + local.get $n + i32.const 8 + i32.ge_u + if + local.get $dest + local.get $src + i64.load + i64.store local.get $n - i32.const 1 + i32.const 8 i32.sub local.set $n - br $while-continue|2 + local.get $dest + i32.const 8 + i32.add + local.set $dest + local.get $src + i32.const 8 + i32.add + local.set $src + br $while-continue|1 end end end + loop $while-continue|2 + local.get $n + if + local.get $dest + local.tee $6 + i32.const 1 + i32.add + local.set $dest + local.get $6 + local.get $src + local.tee $7 + i32.const 1 + i32.add + local.set $src + local.get $7 + i32.load8_u + i32.store8 + local.get $n + i32.const 1 + i32.sub + local.set $n + br $while-continue|2 + end + end else local.get $src i32.const 8 @@ -137,62 +131,19 @@ i32.rem_u i32.eq if - block $while-break|3 - loop $while-continue|3 - local.get $dest - local.get $n - i32.add - i32.const 8 - i32.rem_u - if - local.get $n - i32.eqz - if - local.get $ret - return - end - local.get $dest - local.get $n - i32.const 1 - i32.sub - local.tee $n - i32.add - local.get $src - local.get $n - i32.add - i32.load8_u - i32.store8 - br $while-continue|3 - end - end - end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|3 + local.get $dest + local.get $n + i32.add + i32.const 8 + i32.rem_u + if local.get $n - i32.const 8 - i32.ge_u + i32.eqz if - local.get $n - i32.const 8 - i32.sub - local.set $n - local.get $dest - local.get $n - i32.add - local.get $src - local.get $n - i32.add - i64.load - i64.store - br $while-continue|4 + local.get $ret + return end - end - end - end - block $while-break|5 - loop $while-continue|5 - local.get $n - if local.get $dest local.get $n i32.const 1 @@ -204,9 +155,46 @@ i32.add i32.load8_u i32.store8 - br $while-continue|5 + br $while-continue|3 end end + loop $while-continue|4 + local.get $n + i32.const 8 + i32.ge_u + if + local.get $n + i32.const 8 + i32.sub + local.set $n + local.get $dest + local.get $n + i32.add + local.get $src + local.get $n + i32.add + i64.load + i64.store + br $while-continue|4 + end + end + end + loop $while-continue|5 + local.get $n + if + local.get $dest + local.get $n + i32.const 1 + i32.sub + local.tee $n + i32.add + local.get $src + local.get $n + i32.add + i32.load8_u + i32.store8 + br $while-continue|5 + end end end local.get $ret diff --git a/tests/compiler/memory.release.wat b/tests/compiler/memory.release.wat index 34b1695e66..b1afa82e8f 100644 --- a/tests/compiler/memory.release.wat +++ b/tests/compiler/memory.release.wat @@ -73,10 +73,8 @@ global.get $memory/ptr i32.const 16 i32.add - local.set $0 i32.const 1104 global.set $memory/ptr - local.get $0 i32.const 1104 i32.ne if @@ -90,10 +88,8 @@ global.get $memory/ptr i32.const 8 i32.add - local.set $0 i32.const 1112 global.set $memory/ptr - local.get $0 i32.const 1112 i32.ne if @@ -107,10 +103,8 @@ global.get $memory/ptr i32.const 4 i32.add - local.set $0 i32.const 1116 global.set $memory/ptr - local.get $0 i32.const 1116 i32.ne if @@ -124,10 +118,8 @@ global.get $memory/ptr i32.const 2 i32.add - local.set $0 i32.const 1118 global.set $memory/ptr - local.get $0 i32.const 1118 i32.ne if @@ -141,10 +133,8 @@ global.get $memory/ptr i32.const 1 i32.add - local.set $0 i32.const 1119 global.set $memory/ptr - local.get $0 i32.const 1119 i32.ne if diff --git a/tests/compiler/memset.debug.wat b/tests/compiler/memset.debug.wat index b266f3cea9..06ad44229b 100644 --- a/tests/compiler/memset.debug.wat +++ b/tests/compiler/memset.debug.wat @@ -237,40 +237,38 @@ i64.shl i64.or local.set $c64 - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $n + i32.const 32 + i32.ge_u + if + local.get $dest + local.get $c64 + i64.store + local.get $dest + i32.const 8 + i32.add + local.get $c64 + i64.store + local.get $dest + i32.const 16 + i32.add + local.get $c64 + i64.store + local.get $dest + i32.const 24 + i32.add + local.get $c64 + i64.store local.get $n i32.const 32 - i32.ge_u - if - local.get $dest - local.get $c64 - i64.store - local.get $dest - i32.const 8 - i32.add - local.get $c64 - i64.store - local.get $dest - i32.const 16 - i32.add - local.get $c64 - i64.store - local.get $dest - i32.const 24 - i32.add - local.get $c64 - i64.store - local.get $n - i32.const 32 - i32.sub - local.set $n - local.get $dest - i32.const 32 - i32.add - local.set $dest - br $while-continue|0 - end + i32.sub + local.set $n + local.get $dest + i32.const 32 + i32.add + local.set $dest + br $while-continue|0 end end local.get $ret diff --git a/tests/compiler/merge.debug.wat b/tests/compiler/merge.debug.wat index 1e3f09d925..62a1517ef0 100644 --- a/tests/compiler/merge.debug.wat +++ b/tests/compiler/merge.debug.wat @@ -19,52 +19,36 @@ (export "memory" (memory $0)) (start $~start) (func $merge/namespaceType.test - nop ) (func $merge/typeNamespace.test - nop ) (func $merge/functionType - nop ) (func $merge/typeFunction - nop ) (func $merge/classNamespace.test1 - nop ) (func $merge/classNamespace.test2 - nop ) (func $merge/namespaceClass.test1 - nop ) (func $merge/namespaceClass.test2 - nop ) (func $merge/functionNamespace - nop ) (func $merge/functionNamespace.test - nop ) (func $merge/namespaceFunction.test - nop ) (func $merge/namespaceFunction - nop ) (func $merge/enumNamespace.test - nop ) (func $merge/namespaceEnum.test - nop ) (func $merge/namespaceNamespace.test1 - nop ) (func $merge/namespaceNamespace.test2 - nop ) (func $start:merge global.get $merge/globalType diff --git a/tests/compiler/new.debug.wat b/tests/compiler/new.debug.wat index e37449be95..8714ae4b69 100644 --- a/tests/compiler/new.debug.wat +++ b/tests/compiler/new.debug.wat @@ -97,37 +97,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -353,22 +351,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -582,27 +578,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -620,28 +614,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -966,27 +958,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -995,37 +985,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1115,7 +1103,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1184,15 +1171,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1261,15 +1246,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1277,21 +1260,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1299,27 +1280,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1488,39 +1467,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1539,31 +1516,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2350,7 +2325,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/new.release.wat b/tests/compiler/new.release.wat index 1828d48d23..b6df35a2b3 100644 --- a/tests/compiler/new.release.wat +++ b/tests/compiler/new.release.wat @@ -1067,7 +1067,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1100,7 +1099,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/nontrapping-f2i.release.wat b/tests/compiler/nontrapping-f2i.release.wat index 3dc4fb2b3a..153611c85e 100644 --- a/tests/compiler/nontrapping-f2i.release.wat +++ b/tests/compiler/nontrapping-f2i.release.wat @@ -4,6 +4,5 @@ (export "memory" (memory $0)) (export "_start" (func $~start)) (func $~start - nop ) ) diff --git a/tests/compiler/object-literal.debug.wat b/tests/compiler/object-literal.debug.wat index 6a4b2fb56f..e66ee803a9 100644 --- a/tests/compiler/object-literal.debug.wat +++ b/tests/compiler/object-literal.debug.wat @@ -369,37 +369,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 80 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 80 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -445,22 +443,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -674,27 +670,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -712,28 +706,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1058,27 +1050,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1087,37 +1077,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1207,7 +1195,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1276,15 +1263,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1353,15 +1338,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1369,21 +1352,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1391,27 +1372,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1580,39 +1559,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1631,31 +1608,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2452,40 +2427,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2824,16 +2797,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2876,7 +2847,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $object-literal/Managed~visit (param $0 i32) (param $1 i32) (local $2 i32) diff --git a/tests/compiler/object-literal.release.wat b/tests/compiler/object-literal.release.wat index d190b12c7c..3185b00ccb 100644 --- a/tests/compiler/object-literal.release.wat +++ b/tests/compiler/object-literal.release.wat @@ -904,7 +904,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -937,7 +936,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2320,844 +2318,837 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 28 + memory.fill + i32.const 1156 + i32.const 1152 + i32.store + i32.const 1160 + i32.const 1152 + i32.store + i32.const 1152 + global.set $~lib/rt/itcms/toSpace + memory.size + i32.const 16 + i32.shl + i32.const 34516 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1364 + i32.const 1360 + i32.store + i32.const 1368 + i32.const 1360 + i32.store + i32.const 1360 + global.set $~lib/rt/itcms/pinSpace + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 123 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=12 + local.get $1 + i32.const 1056 + i32.store offset=4 + local.get $1 + i32.const 1056 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + i32.const 123 + i32.ne + if i32.const 0 - i32.const 28 - memory.fill - i32.const 1156 - i32.const 1152 - i32.store - i32.const 1160 - i32.const 1152 - i32.store - i32.const 1152 - global.set $~lib/rt/itcms/toSpace - memory.size - i32.const 16 + i32.const 1504 + i32.const 9 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=4 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1504 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/tlsf/ROOT + i32.eqz + if + call $~lib/rt/tlsf/initialize + end + global.get $~lib/rt/tlsf/ROOT + i32.const 8 + call $~lib/rt/tlsf/allocateBlock + i32.const 4 + i32.add + local.tee $1 + i32.const 0 + i32.store + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 123 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 5 + i32.const 1052 + i32.load + i32.const 1 + i32.shr_u + local.tee $0 + local.get $0 + i32.const 5 + i32.gt_u + select + local.tee $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.le_s + select + i32.const 1 + i32.shl + local.set $3 + block $__inlined_func$~lib/string/String#substring$208 + local.get $2 + i32.const 0 + local.get $2 + i32.const 0 + i32.ge_s + select + i32.const 1 i32.shl - i32.const 34516 + local.tee $4 + local.get $3 i32.sub + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1568 + local.set $0 + br $__inlined_func$~lib/string/String#substring$208 + end + local.get $3 + i32.eqz + local.get $4 + local.get $0 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1364 - i32.const 1360 - i32.store - i32.const 1368 - i32.const 1360 - i32.store - i32.const 1360 - global.set $~lib/rt/itcms/pinSpace - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.shl + i32.eq + i32.and + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1056 + local.set $0 + br $__inlined_func$~lib/string/String#substring$208 + end global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 4 + local.get $2 + i32.const 2 call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/object/Object#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 + local.tee $0 i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 123 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 - local.get $1 - i32.const 1056 - i32.store offset=4 - local.get $1 + local.get $3 i32.const 1056 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store + i32.add + local.get $2 + memory.copy global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub + i32.const 8 + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - i32.const 123 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 9 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=4 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/tlsf/ROOT - i32.eqz - if - call $~lib/rt/tlsf/initialize - end - global.get $~lib/rt/tlsf/ROOT - i32.const 8 - call $~lib/rt/tlsf/allocateBlock - i32.const 4 - i32.add - local.tee $1 - i32.const 0 - i32.store - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 123 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 5 - i32.const 1052 - i32.load - i32.const 1 - i32.shr_u - local.tee $0 - local.get $0 - i32.const 5 - i32.gt_u - select - local.tee $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.le_s - select - i32.const 1 - i32.shl - local.set $3 - block $__inlined_func$~lib/string/String#substring$208 - local.get $2 - i32.const 0 - local.get $2 - i32.const 0 - i32.ge_s - select - i32.const 1 - i32.shl - local.tee $4 - local.get $3 - i32.sub - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1568 - local.set $0 - br $__inlined_func$~lib/string/String#substring$208 - end - local.get $3 - i32.eqz - local.get $4 - local.get $0 - i32.const 1 - i32.shl - i32.eq - i32.and - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1056 - local.set $0 - br $__inlined_func$~lib/string/String#substring$208 - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store offset=4 - local.get $0 - local.get $3 - i32.const 1056 - i32.add - local.get $2 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - local.get $1 - i32.load - i32.const 123 - i32.ne - if - i32.const 0 - i32.const 1504 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1600 - i32.store offset=4 - local.get $0 - i32.const 1600 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 28 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $1 - call $~lib/rt/tlsf/__free - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 65 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 0 - f32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=40 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=41 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=42 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store16 offset=44 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 0 - f64.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store8 offset=64 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - local.get $0 - i32.const 0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=4 - local.get $0 - i64.const 0 - i64.store offset=8 - local.get $0 - i64.const 0 - i64.store offset=16 - local.get $0 - f32.const 0 - f32.store offset=24 - local.get $0 - f64.const 0 - f64.store offset=32 - local.get $0 - i32.const 0 - i32.store8 offset=40 - local.get $0 - i32.const 0 - i32.store8 offset=41 - local.get $0 - i32.const 0 - i32.store16 offset=42 - local.get $0 - i32.const 0 - i32.store16 offset=44 - local.get $0 - i32.const 0 - i32.store offset=48 - local.get $0 - i32.const 0 - i32.store offset=52 - local.get $0 - f64.const 0 - f64.store offset=56 - local.get $0 - i32.const 0 - i32.store8 offset=64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $object-literal/testOmittedTypes - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $~lib/object/Object#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=12 - local.get $1 - i32.const 1632 - i32.store offset=4 - local.get $1 - i32.const 1632 - call $~lib/rt/itcms/__link - local.get $1 - f64.const 0 - f64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load - if - i32.const 0 - i32.const 1504 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=4 - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1632 - i32.store offset=4 - local.get $0 - i32.const 1632 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1504 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - f64.load offset=8 - f64.const 0 - f64.ne - if - i32.const 0 - i32.const 1504 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 40 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/object/Object#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1664 - i32.store offset=8 - local.get $0 - i32.const 1664 - i32.store - local.get $0 - i32.const 1664 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1696 - i32.store offset=8 - local.get $0 - i32.const 1696 - i32.store offset=4 - local.get $0 - i32.const 1696 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=20 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=24 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=28 - local.get $0 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - i32.const 0 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.store offset=12 - local.get $0 - i32.const 0 - i32.store offset=16 - local.get $0 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + local.get $1 + i32.load + i32.const 123 + i32.ne + if i32.const 0 - i32.store offset=20 - local.get $0 + i32.const 1504 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1600 + i32.store offset=4 + local.get $0 + i32.const 1600 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store offset=24 - local.get $0 + i32.const 1504 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $1 + call $~lib/rt/tlsf/__free + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 65 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 0 + f32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + f64.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=40 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=41 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store16 offset=42 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store16 offset=44 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 0 + f64.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store8 offset=64 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=4 + local.get $0 + i64.const 0 + i64.store offset=8 + local.get $0 + i64.const 0 + i64.store offset=16 + local.get $0 + f32.const 0 + f32.store offset=24 + local.get $0 + f64.const 0 + f64.store offset=32 + local.get $0 + i32.const 0 + i32.store8 offset=40 + local.get $0 + i32.const 0 + i32.store8 offset=41 + local.get $0 + i32.const 0 + i32.store16 offset=42 + local.get $0 + i32.const 0 + i32.store16 offset=44 + local.get $0 + i32.const 0 + i32.store offset=48 + local.get $0 + i32.const 0 + i32.store offset=52 + local.get $0 + f64.const 0 + f64.store offset=56 + local.get $0 + i32.const 0 + i32.store8 offset=64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $object-literal/testOmittedTypes + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/object/Object#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1632 + i32.store offset=12 + local.get $1 + i32.const 1632 + i32.store offset=4 + local.get $1 + i32.const 1632 + call $~lib/rt/itcms/__link + local.get $1 + f64.const 0 + f64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load + if i32.const 0 - i32.store offset=28 - local.get $0 + i32.const 1504 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load offset=4 + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1632 + i32.store offset=4 + local.get $0 + i32.const 1632 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - call $object-literal/testOmittedFoo - i32.const 34516 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state + i32.const 1504 + i32.const 83 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + f64.load offset=8 + f64.const 0 + f64.ne + if i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 + i32.const 1504 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 40 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/object/Object#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1664 + i32.store offset=8 + local.get $0 + i32.const 1664 + i32.store + local.get $0 + i32.const 1664 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.store offset=8 + local.get $0 + i32.const 1696 + i32.store offset=4 + local.get $0 + i32.const 1696 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=28 + local.get $0 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + i32.const 0 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.store offset=12 + local.get $0 + i32.const 0 + i32.store offset=16 + local.get $0 + i32.const 0 + i32.store offset=20 + local.get $0 + i32.const 0 + i32.store offset=24 + local.get $0 + i32.const 0 + i32.store offset=28 + local.get $0 + i32.const 0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + call $object-literal/testOmittedFoo + i32.const 34516 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|0 end end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 28 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 28 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 diff --git a/tests/compiler/operator-overload-non-ambiguity.debug.wat b/tests/compiler/operator-overload-non-ambiguity.debug.wat index 8214c096b5..4906ce43bf 100644 --- a/tests/compiler/operator-overload-non-ambiguity.debug.wat +++ b/tests/compiler/operator-overload-non-ambiguity.debug.wat @@ -92,37 +92,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -348,22 +346,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -577,27 +573,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -615,28 +609,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -961,27 +953,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -990,37 +980,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1110,7 +1098,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1179,15 +1166,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1256,15 +1241,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,21 +1255,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1294,27 +1275,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1483,39 +1462,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1534,31 +1511,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2311,7 +2286,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/operator-overload-non-ambiguity.release.wat b/tests/compiler/operator-overload-non-ambiguity.release.wat index abbf89d89c..0492d014af 100644 --- a/tests/compiler/operator-overload-non-ambiguity.release.wat +++ b/tests/compiler/operator-overload-non-ambiguity.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/optional-typeparameters.debug.wat b/tests/compiler/optional-typeparameters.debug.wat index c9507f024e..f74a3d0ef3 100644 --- a/tests/compiler/optional-typeparameters.debug.wat +++ b/tests/compiler/optional-typeparameters.debug.wat @@ -105,37 +105,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -361,22 +359,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -590,27 +586,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -628,28 +622,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -974,27 +966,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1003,37 +993,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1123,7 +1111,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1192,15 +1179,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1269,15 +1254,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1285,21 +1268,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1307,27 +1288,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1496,39 +1475,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1547,31 +1524,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2350,7 +2325,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array<~lib/string/String>#get:dataStart (param $this i32) (result i32) local.get $this @@ -2730,27 +2704,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/optional-typeparameters.release.wat b/tests/compiler/optional-typeparameters.release.wat index 9c4eecb2ab..753b8a0ace 100644 --- a/tests/compiler/optional-typeparameters.release.wat +++ b/tests/compiler/optional-typeparameters.release.wat @@ -1053,7 +1053,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1086,7 +1085,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/possibly-null.debug.wat b/tests/compiler/possibly-null.debug.wat index 2d7d330d0a..f528abfabe 100644 --- a/tests/compiler/possibly-null.debug.wat +++ b/tests/compiler/possibly-null.debug.wat @@ -143,21 +143,19 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $while-break|0 - loop $while-continue|0 - local.get $a - if - i32.const 0 - drop - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $a - i32.store - i32.const 1 - i32.eqz - drop - br $while-continue|0 - end + loop $while-continue|0 + local.get $a + if + i32.const 0 + drop + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $a + i32.store + i32.const 1 + i32.eqz + drop + br $while-continue|0 end end global.get $~lib/memory/__stack_pointer @@ -174,23 +172,21 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store - block $while-break|0 - loop $while-continue|0 - local.get $a + loop $while-continue|0 + local.get $a + if + i32.const 0 + drop + local.get $b if + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $a + i32.store i32.const 0 drop - local.get $b - if - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $a - i32.store - i32.const 0 - drop - end - br $while-continue|0 end + br $while-continue|0 end end global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/reexport.debug.wat b/tests/compiler/reexport.debug.wat index 9bc0b39916..627d155d23 100644 --- a/tests/compiler/reexport.debug.wat +++ b/tests/compiler/reexport.debug.wat @@ -138,37 +138,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -394,22 +392,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -623,27 +619,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -661,28 +655,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1007,27 +999,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1036,37 +1026,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1156,7 +1144,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1225,15 +1212,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1302,15 +1287,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1318,21 +1301,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1340,27 +1321,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1529,39 +1508,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1580,31 +1557,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2324,7 +2299,6 @@ return ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2357,7 +2331,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/reexport.release.wat b/tests/compiler/reexport.release.wat index 1182bd679d..5f3c208a7c 100644 --- a/tests/compiler/reexport.release.wat +++ b/tests/compiler/reexport.release.wat @@ -1060,7 +1060,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1093,7 +1092,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1407,7 +1405,6 @@ i32.sub ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1540,12 +1537,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const 2 i32.ne if diff --git a/tests/compiler/rereexport.debug.wat b/tests/compiler/rereexport.debug.wat index 1c3f0b630b..f915695912 100644 --- a/tests/compiler/rereexport.debug.wat +++ b/tests/compiler/rereexport.debug.wat @@ -131,37 +131,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -387,22 +385,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -616,27 +612,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -654,28 +648,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1000,27 +992,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1029,37 +1019,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1149,7 +1137,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1218,15 +1205,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1295,15 +1280,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1311,21 +1294,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1333,27 +1314,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1522,39 +1501,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1573,31 +1550,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2311,7 +2286,6 @@ i32.load ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2358,7 +2332,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rereexport.release.wat b/tests/compiler/rereexport.release.wat index 4ca90b2350..bdef63163f 100644 --- a/tests/compiler/rereexport.release.wat +++ b/tests/compiler/rereexport.release.wat @@ -1058,7 +1058,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1091,7 +1090,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1400,7 +1398,6 @@ local.get $0 ) (func $export-default/theDefault - nop ) (func $~lib/rt/__visit_members (param $0 i32) block $invalid @@ -1628,11 +1625,9 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/resolve-access.debug.wat b/tests/compiler/resolve-access.debug.wat index 7a73a36ca3..5864d93eba 100644 --- a/tests/compiler/resolve-access.debug.wat +++ b/tests/compiler/resolve-access.debug.wat @@ -113,37 +113,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -369,22 +367,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -598,27 +594,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -636,28 +630,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -982,27 +974,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1011,37 +1001,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1131,7 +1119,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1200,15 +1187,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1277,15 +1262,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1293,21 +1276,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1315,27 +1296,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1504,39 +1483,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1555,31 +1532,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2447,61 +2422,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 716 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 716 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2647,109 +2620,107 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i64.const 100000000 + i64.ge_u + if local.get $num i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t - local.get $num - local.get $t - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 716 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 716 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 716 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 716 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 716 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 716 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $buffer @@ -2759,37 +2730,35 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1136 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1136 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2843,44 +2812,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -3030,7 +2995,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -3558,22 +3522,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -3586,22 +3548,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.0 - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -3626,22 +3586,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.0 - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix @@ -3764,22 +3722,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -3802,23 +3758,21 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut else local.get $value i64.extend_i32_u diff --git a/tests/compiler/resolve-access.release.wat b/tests/compiler/resolve-access.release.wat index ccf35a9d65..2fb8a6ecc6 100644 --- a/tests/compiler/resolve-access.release.wat +++ b/tests/compiler/resolve-access.release.wat @@ -1053,7 +1053,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1086,7 +1085,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2030,7 +2028,6 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2043,7 +2040,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 8 i32.const 1 call $~lib/rt/itcms/__new @@ -2051,7 +2047,6 @@ i32.const 1056 i64.load align=1 i64.store align=1 - local.get $1 local.get $4 i32.store i32.const 16 @@ -2123,7 +2118,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $3 i32.store global.get $~lib/memory/__stack_pointer @@ -2160,19 +2154,15 @@ local.get $3 i32.load offset=4 i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 call $~lib/number/U64#toString - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 36128 @@ -2204,7 +2194,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2233,7 +2222,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2292,12 +2280,10 @@ local.get $0 i64.load call $~lib/number/U64#toString - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $resolve-access/propertyAccess (result i32) (local $0 i32) @@ -2308,143 +2294,140 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - call $resolve-access/Container#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 1 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i64.load - i32.wrap_i64 - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3328 - i32.lt_s - br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + call $resolve-access/Container#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 1 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i64.load + i32.wrap_i64 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3328 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + block $__inlined_func$~lib/util/number/utoa32$74 + local.get $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 1728 + local.set $0 + br $__inlined_func$~lib/util/number/utoa32$74 + end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - block $__inlined_func$~lib/util/number/utoa32$74 + local.get $2 + i32.const 100000 + i32.lt_u + if (result i32) local.get $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 100 + i32.lt_u + if (result i32) + local.get $2 + i32.const 10 + i32.ge_u + i32.const 1 + i32.add + else + local.get $2 + i32.const 10000 + i32.ge_u + i32.const 3 + i32.add + local.get $2 + i32.const 1000 + i32.ge_u i32.add - global.set $~lib/memory/__stack_pointer - i32.const 1728 - local.set $0 - br $__inlined_func$~lib/util/number/utoa32$74 end - global.get $~lib/memory/__stack_pointer + else local.get $2 - i32.const 100000 + i32.const 10000000 i32.lt_u if (result i32) local.get $2 - i32.const 100 - i32.lt_u - if (result i32) - local.get $2 - i32.const 10 - i32.ge_u - i32.const 1 - i32.add - else - local.get $2 - i32.const 10000 - i32.ge_u - i32.const 3 - i32.add - local.get $2 - i32.const 1000 - i32.ge_u - i32.add - end + i32.const 1000000 + i32.ge_u + i32.const 6 + i32.add else local.get $2 - i32.const 10000000 - i32.lt_u - if (result i32) - local.get $2 - i32.const 1000000 - i32.ge_u - i32.const 6 - i32.add - else - local.get $2 - i32.const 1000000000 - i32.ge_u - i32.const 8 - i32.add - local.get $2 - i32.const 100000000 - i32.ge_u - i32.add - end + i32.const 1000000000 + i32.ge_u + i32.const 8 + i32.add + local.get $2 + i32.const 100000000 + i32.ge_u + i32.add end - local.tee $1 - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - local.get $2 - local.get $1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer end + local.tee $1 + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + local.get $2 + local.get $1 + call $~lib/util/number/utoa32_dec_lut global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return end i32.const 36128 i32.const 36176 diff --git a/tests/compiler/resolve-binary.debug.wat b/tests/compiler/resolve-binary.debug.wat index 652de0ffeb..f911a1e884 100644 --- a/tests/compiler/resolve-binary.debug.wat +++ b/tests/compiler/resolve-binary.debug.wat @@ -191,40 +191,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -335,37 +333,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 448 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 448 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -591,22 +587,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -820,27 +814,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -858,28 +850,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1204,27 +1194,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1233,37 +1221,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1353,7 +1339,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1422,15 +1407,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1499,15 +1482,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1515,21 +1496,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1537,27 +1516,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1726,39 +1703,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1777,31 +1752,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2522,61 +2495,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 764 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 764 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 764 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 764 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2653,37 +2624,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1184 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1184 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2737,44 +2706,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -3986,454 +3951,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 9632 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 9632 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 9632 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 9632 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -4658,22 +4610,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -4739,22 +4689,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -4938,115 +4886,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8760 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 9456 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8760 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 9456 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -5511,29 +5455,27 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + if local.get $e + i32.const 1 + i32.and if - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x + local.get $out local.get $x i32.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -5673,7 +5615,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -7664,24 +7605,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -7706,25 +7645,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-binary.release.wat b/tests/compiler/resolve-binary.release.wat index f82a4d1b73..127a98403b 100644 --- a/tests/compiler/resolve-binary.release.wat +++ b/tests/compiler/resolve-binary.release.wat @@ -1258,7 +1258,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1291,7 +1290,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/resolve-elementaccess.debug.wat b/tests/compiler/resolve-elementaccess.debug.wat index eee967bd50..ec97507c90 100644 --- a/tests/compiler/resolve-elementaccess.debug.wat +++ b/tests/compiler/resolve-elementaccess.debug.wat @@ -136,37 +136,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -392,22 +390,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -621,27 +617,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -659,28 +653,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1005,27 +997,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1034,37 +1024,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1154,7 +1142,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1223,15 +1210,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1300,15 +1285,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1316,21 +1299,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1338,27 +1319,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1527,39 +1506,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1578,31 +1555,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2524,454 +2499,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 1680 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 1680 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 1680 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 1680 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -2987,61 +2949,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1720 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1720 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1720 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1720 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -3338,22 +3298,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -3419,22 +3377,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -3618,115 +3574,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 808 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 1504 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 808 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 1504 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4079,77 +4031,73 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 return ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 2544 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 2544 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -4203,44 +4151,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -4394,7 +4338,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/typedarray/Float32Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -5510,22 +5453,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -5548,23 +5489,21 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut else local.get $value i64.extend_i32_u diff --git a/tests/compiler/resolve-elementaccess.release.wat b/tests/compiler/resolve-elementaccess.release.wat index a161cce7e3..d02af1c470 100644 --- a/tests/compiler/resolve-elementaccess.release.wat +++ b/tests/compiler/resolve-elementaccess.release.wat @@ -1105,7 +1105,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1138,7 +1137,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -3160,12 +3158,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3419,12 +3415,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:resolve-elementaccess (local $0 i32) @@ -3672,7 +3666,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -3710,7 +3703,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-function-expression.debug.wat b/tests/compiler/resolve-function-expression.debug.wat index aceb2e1300..96ada2500c 100644 --- a/tests/compiler/resolve-function-expression.debug.wat +++ b/tests/compiler/resolve-function-expression.debug.wat @@ -179,37 +179,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 496 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 496 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -435,22 +433,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -664,27 +660,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -702,28 +696,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1048,27 +1040,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1077,37 +1067,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1197,7 +1185,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1266,15 +1253,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1343,15 +1328,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1359,21 +1342,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1381,27 +1362,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1570,39 +1549,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1621,31 +1598,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2366,61 +2341,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 812 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 812 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 812 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 812 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2497,37 +2470,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1232 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1232 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2581,44 +2552,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -2803,40 +2770,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2872,7 +2837,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -3230,24 +3194,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -3272,25 +3234,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-function-expression.release.wat b/tests/compiler/resolve-function-expression.release.wat index b4a7f27f3c..b0045a24b7 100644 --- a/tests/compiler/resolve-function-expression.release.wat +++ b/tests/compiler/resolve-function-expression.release.wat @@ -1068,7 +1068,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1101,7 +1100,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1289,7 +1287,6 @@ br $__inlined_func$~lib/util/number/itoa32$73 end global.get $~lib/memory/__stack_pointer - local.set $5 i32.const 0 local.get $0 i32.sub @@ -1661,7 +1658,6 @@ i32.const 0 local.get $6 memory.fill - local.get $5 local.get $2 i32.store local.get $2 diff --git a/tests/compiler/resolve-nested.debug.wat b/tests/compiler/resolve-nested.debug.wat index 388b1821c9..41ee1e9f62 100644 --- a/tests/compiler/resolve-nested.debug.wat +++ b/tests/compiler/resolve-nested.debug.wat @@ -26,7 +26,6 @@ (export "memory" (memory $0)) (export "outer" (func $export:resolve-nested/outer)) (func $resolve-nested/outer (param $a i32) (param $b i32) (param $c i32) - nop ) (func $~stack_check global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-new.debug.wat b/tests/compiler/resolve-new.debug.wat index 3f14d09bab..915a1b52a1 100644 --- a/tests/compiler/resolve-new.debug.wat +++ b/tests/compiler/resolve-new.debug.wat @@ -92,37 +92,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -348,22 +346,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -577,27 +573,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -615,28 +609,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -961,27 +953,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -990,37 +980,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1110,7 +1098,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1179,15 +1166,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1256,15 +1241,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,21 +1255,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1294,27 +1275,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1483,39 +1462,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1534,31 +1511,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2268,7 +2243,6 @@ return ) (func $resolve-new/Foo#bar (param $this i32) - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2301,7 +2275,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/resolve-new.release.wat b/tests/compiler/resolve-new.release.wat index d5630d2d1f..c64de3724e 100644 --- a/tests/compiler/resolve-new.release.wat +++ b/tests/compiler/resolve-new.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1491,7 +1489,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1519,7 +1516,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-propertyaccess.debug.wat b/tests/compiler/resolve-propertyaccess.debug.wat index 83a996e6da..7c13c3bb67 100644 --- a/tests/compiler/resolve-propertyaccess.debug.wat +++ b/tests/compiler/resolve-propertyaccess.debug.wat @@ -179,37 +179,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -435,22 +433,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -664,27 +660,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -702,28 +696,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1048,27 +1040,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1077,37 +1067,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1197,7 +1185,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1266,15 +1253,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1343,15 +1328,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1359,21 +1342,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1381,27 +1362,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1570,39 +1549,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1621,31 +1598,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2366,61 +2341,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2497,37 +2470,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2581,44 +2552,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -2803,40 +2770,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2889,7 +2854,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -3500,24 +3464,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -3542,25 +3504,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-propertyaccess.release.wat b/tests/compiler/resolve-propertyaccess.release.wat index 3767d16019..eeb39ece91 100644 --- a/tests/compiler/resolve-propertyaccess.release.wat +++ b/tests/compiler/resolve-propertyaccess.release.wat @@ -1067,7 +1067,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1100,7 +1099,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2244,7 +2242,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub @@ -2263,7 +2260,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2292,7 +2288,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2305,7 +2300,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/resolve-ternary.debug.wat b/tests/compiler/resolve-ternary.debug.wat index 9809b46658..65d9fa68c2 100644 --- a/tests/compiler/resolve-ternary.debug.wat +++ b/tests/compiler/resolve-ternary.debug.wat @@ -187,37 +187,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -443,22 +441,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -672,27 +668,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -710,28 +704,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1056,27 +1048,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1085,37 +1075,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1205,7 +1193,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1274,15 +1261,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1351,15 +1336,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1367,21 +1350,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1389,27 +1370,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1578,39 +1557,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1629,31 +1606,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2374,70 +2349,68 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end - end - end - local.get $num - i32.const 100 - i32.ge_u - if - local.get $num - i32.const 100 - i32.div_u + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 + end + end + local.get $num + i32.const 100 + i32.ge_u + if + local.get $num + i32.const 100 + i32.div_u local.set $t|9 local.get $num i32.const 100 @@ -2505,37 +2478,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2589,44 +2560,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -2811,40 +2778,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2913,454 +2878,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 3376 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 3376 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 3376 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 3376 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -3585,22 +3537,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -3666,22 +3616,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -3865,115 +3813,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2504 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 3200 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2504 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3200 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4298,7 +4242,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28i32%29=>i32>#get:_env (param $this i32) (result i32) local.get $this @@ -4717,24 +4660,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -4759,25 +4700,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-ternary.release.wat b/tests/compiler/resolve-ternary.release.wat index 47c3b86c7c..4969034cb3 100644 --- a/tests/compiler/resolve-ternary.release.wat +++ b/tests/compiler/resolve-ternary.release.wat @@ -1073,7 +1073,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1106,7 +1105,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2502,285 +2500,282 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - memory.size - i32.const 16 - i32.shl - i32.const 37400 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1396 - i32.const 1392 - i32.store - i32.const 1400 - i32.const 1392 - i32.store - i32.const 1392 - global.set $~lib/rt/itcms/pinSpace - i32.const 1428 - i32.const 1424 - i32.store - i32.const 1432 - i32.const 1424 - i32.store - i32.const 1424 - global.set $~lib/rt/itcms/toSpace - i32.const 1572 - i32.const 1568 - i32.store - i32.const 1576 - i32.const 1568 - i32.store - i32.const 1568 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + memory.size + i32.const 16 + i32.shl + i32.const 37400 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1396 + i32.const 1392 + i32.store + i32.const 1400 + i32.const 1392 + i32.store + i32.const 1392 + global.set $~lib/rt/itcms/pinSpace + i32.const 1428 + i32.const 1424 + i32.store + i32.const 1432 + i32.const 1424 + i32.store + i32.const 1424 + global.set $~lib/rt/itcms/toSpace + i32.const 1572 + i32.const 1568 + i32.store + i32.const 1576 + i32.const 1568 + i32.store + i32.const 1568 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/util/number/utoa32_dec_lut + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3232 + i32.store offset=4 + local.get $0 + i32.const 3232 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 1 + i32.const 3264 + i32.const 5 i32.const 1 - call $~lib/util/number/utoa32_dec_lut - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3232 - i32.store offset=4 - local.get $0 - i32.const 3232 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 5 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 4632 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4632 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + i32.const -4 + global.set $~lib/util/number/_K + i32.const 3880 + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 4312 + i32.load16_s + global.set $~lib/util/number/_exp_pow + global.get $~lib/util/number/_frc_pow + local.tee $3 + i64.const 4294967295 + i64.and + local.tee $4 + i64.const 31 + i64.shl + local.get $4 + i64.const 10 + i64.shl + i64.const 32 + i64.shr_u + i64.add + local.set $1 + local.get $3 + i64.const 32 + i64.shr_u + local.tee $3 + i64.const 31 + i64.shl + local.get $4 + i64.const 31 + i64.shl + local.tee $5 + i64.const 32 + i64.shr_u + i64.add + local.get $5 + i64.const 4294967295 + i64.and + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 31 + i64.shl + local.get $1 + i64.const 32 + i64.shr_u + i64.add + local.get $1 + i64.const 4294967295 + i64.and + local.get $3 + i64.const 10 + i64.shl + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.sub + local.tee $1 + global.get $~lib/util/number/_exp_pow + i32.const 1 + i32.add + local.get $1 + local.get $3 + i64.const 2147483647 + i64.mul + local.get $4 + i64.const 2147483647 + i64.mul + local.get $4 + i64.const 4294966784 + i64.mul + i64.const 32 + i64.shr_u + i64.add + local.tee $1 + i64.const 32 + i64.shr_u + i64.add + local.get $3 + i64.const 4294966784 + i64.mul + local.get $1 + i64.const 4294967295 + i64.and + i64.add + i64.const 2147483647 + i64.add + i64.const 32 + i64.shr_u + i64.add + i64.const 1 + i64.add + i64.sub + call $~lib/util/number/genDigits + global.get $~lib/util/number/_K + call $~lib/util/number/prettify + i32.const 1 + i32.shl + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + local.get $0 + i32.const 3472 + local.get $6 + memory.copy + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=4 + local.get $0 + i32.const 4464 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.store - i32.const -4 - global.set $~lib/util/number/_K - i32.const 3880 - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 4312 - i32.load16_s - global.set $~lib/util/number/_exp_pow - global.get $~lib/util/number/_frc_pow - local.tee $3 - i64.const 4294967295 - i64.and - local.tee $4 - i64.const 31 - i64.shl - local.get $4 - i64.const 10 - i64.shl - i64.const 32 - i64.shr_u - i64.add - local.set $1 - local.get $3 - i64.const 32 - i64.shr_u - local.tee $3 - i64.const 31 - i64.shl - local.get $4 - i64.const 31 - i64.shl - local.tee $5 - i64.const 32 - i64.shr_u - i64.add - local.get $5 - i64.const 4294967295 - i64.and - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 31 - i64.shl - local.get $1 - i64.const 32 - i64.shr_u - i64.add - local.get $1 - i64.const 4294967295 - i64.and - local.get $3 - i64.const 10 - i64.shl - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.sub - local.tee $1 - global.get $~lib/util/number/_exp_pow - i32.const 1 - i32.add - local.get $1 - local.get $3 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 2147483647 - i64.mul - local.get $4 - i64.const 4294966784 - i64.mul - i64.const 32 - i64.shr_u - i64.add - local.tee $1 - i64.const 32 - i64.shr_u - i64.add - local.get $3 - i64.const 4294966784 - i64.mul - local.get $1 - i64.const 4294967295 - i64.and - i64.add - i64.const 2147483647 - i64.add - i64.const 32 - i64.shr_u - i64.add - i64.const 1 - i64.add - i64.sub - call $~lib/util/number/genDigits - global.get $~lib/util/number/_K - call $~lib/util/number/prettify + i32.const 3264 + i32.const 13 i32.const 1 - i32.shl - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - local.get $0 - i32.const 3472 - local.get $6 - memory.copy - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=4 - local.get $0 - i32.const 4464 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 3264 - i32.const 13 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4496 + i32.load + call_indirect (type $0) + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 24 i32.const 1 - i32.const 4496 - i32.load - call_indirect (type $0) - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 24 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4560 + i32.load + call_indirect (type $0) + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 35 i32.const 1 - i32.const 4560 - i32.load - call_indirect (type $0) - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 35 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + i32.const 1 + i32.const 4528 + i32.load + call_indirect (type $0) + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 3264 + i32.const 43 i32.const 1 - i32.const 4528 - i32.load - call_indirect (type $0) - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 3264 - i32.const 43 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 37424 i32.const 37472 diff --git a/tests/compiler/resolve-unary.debug.wat b/tests/compiler/resolve-unary.debug.wat index 82c13e8933..f22d05a02b 100644 --- a/tests/compiler/resolve-unary.debug.wat +++ b/tests/compiler/resolve-unary.debug.wat @@ -179,37 +179,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 320 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 320 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -435,22 +433,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -664,27 +660,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -702,28 +696,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1048,27 +1040,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1077,37 +1067,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1197,7 +1185,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1266,15 +1253,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1343,15 +1328,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1359,21 +1342,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1381,27 +1362,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1570,39 +1549,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1621,31 +1598,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2366,61 +2341,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 636 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 636 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 636 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 636 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2497,37 +2470,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1056 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1056 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2581,44 +2552,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -2803,40 +2770,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2908,10 +2873,8 @@ return ) (func $start:resolve-unary~anonymous|0 - nop ) (func $resolve-unary/generic<~lib/string/String> (param $v i32) - nop ) (func $~lib/rt/__visit_globals (param $0 i32) (local $1 i32) @@ -2957,7 +2920,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this @@ -3989,24 +3951,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -4031,25 +3991,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/resolve-unary.release.wat b/tests/compiler/resolve-unary.release.wat index 379afd054b..ecbca645a6 100644 --- a/tests/compiler/resolve-unary.release.wat +++ b/tests/compiler/resolve-unary.release.wat @@ -1093,7 +1093,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1126,7 +1125,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/return-unreachable.debug.wat b/tests/compiler/return-unreachable.debug.wat index d27ae23492..c08d881355 100644 --- a/tests/compiler/return-unreachable.debug.wat +++ b/tests/compiler/return-unreachable.debug.wat @@ -95,37 +95,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -351,22 +349,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -580,27 +576,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -618,28 +612,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -964,27 +956,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -993,37 +983,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1113,7 +1101,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1182,15 +1169,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1259,15 +1244,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1275,21 +1258,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1297,27 +1278,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1486,39 +1465,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1537,31 +1514,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2407,7 +2382,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/return-unreachable.release.wat b/tests/compiler/return-unreachable.release.wat index 0331dc96e8..5b53eebc9c 100644 --- a/tests/compiler/return-unreachable.release.wat +++ b/tests/compiler/return-unreachable.release.wat @@ -1037,7 +1037,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1070,7 +1069,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1605,7 +1603,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -1687,7 +1684,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $0 i32.store unreachable diff --git a/tests/compiler/return.debug.wat b/tests/compiler/return.debug.wat index 4b18703cfe..3a0fe739ab 100644 --- a/tests/compiler/return.debug.wat +++ b/tests/compiler/return.debug.wat @@ -17,7 +17,6 @@ (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) (func $return/nop - nop ) (func $start:return~anonymous|0 call $return/nop diff --git a/tests/compiler/return.release.wat b/tests/compiler/return.release.wat index eb8b71d15d..4509ebf226 100644 --- a/tests/compiler/return.release.wat +++ b/tests/compiler/return.release.wat @@ -15,10 +15,8 @@ (export "testVoidReturnFunction" (func $export:return/testVoidReturnFunction)) (start $~start) (func $start:return~anonymous|0 - nop ) (func $return/testVoidReturn (param $0 i32) - nop ) (func $~start global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/alloc-large-memory.debug.wat b/tests/compiler/rt/alloc-large-memory.debug.wat index 7055f846d5..9d12c607e6 100644 --- a/tests/compiler/rt/alloc-large-memory.debug.wat +++ b/tests/compiler/rt/alloc-large-memory.debug.wat @@ -218,27 +218,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -256,28 +254,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -602,27 +598,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -631,37 +625,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -751,7 +743,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -820,15 +811,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -897,15 +886,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -913,21 +900,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -935,27 +920,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1517,19 +1500,17 @@ ) (func $start:rt/alloc-large-memory (local $i i32) - block $while-break|0 - loop $while-continue|0 - memory.size - i32.const 128 - i32.ne - if - i32.const 32 - i32.const 1024 - i32.mul - call $~lib/memory/heap.alloc - drop - br $while-continue|0 - end + loop $while-continue|0 + memory.size + i32.const 128 + i32.ne + if + i32.const 32 + i32.const 1024 + i32.mul + call $~lib/memory/heap.alloc + drop + br $while-continue|0 end end i32.const 0 diff --git a/tests/compiler/rt/finalize.debug.wat b/tests/compiler/rt/finalize.debug.wat index bbddd7907e..d3cb87b0de 100644 --- a/tests/compiler/rt/finalize.debug.wat +++ b/tests/compiler/rt/finalize.debug.wat @@ -95,37 +95,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -351,22 +349,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -596,27 +592,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -634,28 +628,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -980,27 +972,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1009,37 +999,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1129,7 +1117,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1198,15 +1185,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1275,15 +1260,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1291,21 +1274,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1313,27 +1294,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1506,39 +1485,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1557,31 +1534,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2310,16 +2285,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2395,7 +2368,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/finalize.release.wat b/tests/compiler/rt/finalize.release.wat index 5172a87b5d..7bd0a828a6 100644 --- a/tests/compiler/rt/finalize.release.wat +++ b/tests/compiler/rt/finalize.release.wat @@ -1045,7 +1045,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1078,7 +1077,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1479,7 +1477,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1507,7 +1504,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/issue-2719.debug.wat b/tests/compiler/rt/issue-2719.debug.wat index ee15452795..2071e914a1 100644 --- a/tests/compiler/rt/issue-2719.debug.wat +++ b/tests/compiler/rt/issue-2719.debug.wat @@ -92,37 +92,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -348,22 +346,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -577,27 +573,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -615,28 +609,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -961,27 +953,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -990,37 +980,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1110,7 +1098,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1179,15 +1166,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1256,15 +1241,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1272,21 +1255,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1294,27 +1275,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1483,39 +1462,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1534,31 +1511,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2292,16 +2267,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2348,7 +2321,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/issue-2719.release.wat b/tests/compiler/rt/issue-2719.release.wat index e0b5e3a2d8..dafe0b0096 100644 --- a/tests/compiler/rt/issue-2719.release.wat +++ b/tests/compiler/rt/issue-2719.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1734,7 +1732,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1763,7 +1760,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/rt/runtime-incremental-export.debug.wat b/tests/compiler/rt/runtime-incremental-export.debug.wat index 0bf2e3b6d0..e0441f24cb 100644 --- a/tests/compiler/rt/runtime-incremental-export.debug.wat +++ b/tests/compiler/rt/runtime-incremental-export.debug.wat @@ -98,37 +98,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -354,22 +352,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -583,27 +579,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -621,28 +615,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -967,27 +959,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -996,37 +986,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1116,7 +1104,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1185,15 +1172,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1262,15 +1247,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1278,21 +1261,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1300,27 +1281,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1489,39 +1468,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1540,31 +1517,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2361,16 +2336,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2419,7 +2392,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/runtime-incremental-export.release.wat b/tests/compiler/rt/runtime-incremental-export.release.wat index 6372bb77d3..f050d955d0 100644 --- a/tests/compiler/rt/runtime-incremental-export.release.wat +++ b/tests/compiler/rt/runtime-incremental-export.release.wat @@ -1046,7 +1046,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1079,7 +1078,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/rt/runtime-minimal-export.debug.wat b/tests/compiler/rt/runtime-minimal-export.debug.wat index 5552841605..4ba694d3dc 100644 --- a/tests/compiler/rt/runtime-minimal-export.debug.wat +++ b/tests/compiler/rt/runtime-minimal-export.debug.wat @@ -235,27 +235,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -273,28 +271,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -619,27 +615,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -648,37 +642,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -768,7 +760,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -837,15 +828,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -914,15 +903,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -930,21 +917,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -952,27 +937,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1862,37 +1845,35 @@ local.get $pn call $~lib/rt/tcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/tcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/tcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 213 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add i32.const 0 - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 96 + i32.const 213 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/tcms/Object#get:next + local.set $iter + br $while-continue|0 end end global.get $~lib/rt/tcms/white @@ -1903,37 +1884,35 @@ local.get $to call $~lib/rt/tcms/Object#get:next local.set $iter - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $iter + local.get $to + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $to - i32.ne + call $~lib/rt/tcms/Object#get:color + local.get $black + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/tcms/Object#get:color - local.get $black - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 223 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add i32.const 0 - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $iter - br $while-continue|1 + i32.const 96 + i32.const 223 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/tcms/Object#get:next + local.set $iter + br $while-continue|1 end end global.get $~lib/rt/tcms/fromSpace @@ -1941,57 +1920,55 @@ local.get $from call $~lib/rt/tcms/Object#get:next local.set $iter - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $iter + local.get $from + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $from - i32.ne + call $~lib/rt/tcms/Object#get:color + global.get $~lib/rt/tcms/white + i32.eq + i32.eqz + if + i32.const 0 + i32.const 96 + i32.const 232 + i32.const 16 + call $~lib/builtins/abort + unreachable + end + local.get $iter + call $~lib/rt/tcms/Object#get:next + local.set $newNext + local.get $iter + global.get $~lib/memory/__heap_base + i32.lt_u if - i32.const 1 - drop local.get $iter - call $~lib/rt/tcms/Object#get:color - global.get $~lib/rt/tcms/white - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 232 - i32.const 16 - call $~lib/builtins/abort - unreachable - end + i32.const 0 + call $~lib/rt/tcms/Object#set:nextWithColor local.get $iter - call $~lib/rt/tcms/Object#get:next - local.set $newNext + i32.const 0 + call $~lib/rt/tcms/Object#set:prev + else + global.get $~lib/rt/tcms/total local.get $iter - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $iter - i32.const 0 - call $~lib/rt/tcms/Object#set:nextWithColor - local.get $iter - i32.const 0 - call $~lib/rt/tcms/Object#set:prev - else - global.get $~lib/rt/tcms/total - local.get $iter - call $~lib/rt/tcms/Object#get:size - i32.sub - global.set $~lib/rt/tcms/total - i32.const 0 - drop - local.get $iter - i32.const 4 - i32.add - call $~lib/rt/tlsf/__free - end - local.get $newNext - local.set $iter - br $while-continue|2 + call $~lib/rt/tcms/Object#get:size + i32.sub + global.set $~lib/rt/tcms/total + i32.const 0 + drop + local.get $iter + i32.const 4 + i32.add + call $~lib/rt/tlsf/__free end + local.get $newNext + local.set $iter + br $while-continue|2 end end local.get $from @@ -2065,7 +2042,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/rt/runtime-minimal-export.release.wat b/tests/compiler/rt/runtime-minimal-export.release.wat index aaeece8e32..fdbc294ad7 100644 --- a/tests/compiler/rt/runtime-minimal-export.release.wat +++ b/tests/compiler/rt/runtime-minimal-export.release.wat @@ -1288,7 +1288,6 @@ i32.load offset=4 i32.const -4 i32.and - local.set $1 local.get $0 i32.const 1476 i32.lt_u @@ -1322,7 +1321,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $6 local.get $0 i32.const 4 i32.sub @@ -1355,12 +1353,10 @@ i32.const 1 i32.or i32.store - local.get $6 local.get $4 call $~lib/rt/tlsf/insertBlock end end - local.get $1 local.set $0 br $while-continue|2 end diff --git a/tests/compiler/rt/runtime-stub-export.debug.wat b/tests/compiler/rt/runtime-stub-export.debug.wat index d5ceadd9af..da03f96897 100644 --- a/tests/compiler/rt/runtime-stub-export.debug.wat +++ b/tests/compiler/rt/runtime-stub-export.debug.wat @@ -203,10 +203,8 @@ return ) (func $~lib/rt/stub/__unpin (param $ptr i32) - nop ) (func $~lib/rt/stub/__collect - nop ) (func $~start global.get $~lib/memory/__heap_base diff --git a/tests/compiler/rt/runtime-stub-export.release.wat b/tests/compiler/rt/runtime-stub-export.release.wat index 770363418c..49d2915a10 100644 --- a/tests/compiler/rt/runtime-stub-export.release.wat +++ b/tests/compiler/rt/runtime-stub-export.release.wat @@ -53,7 +53,6 @@ unreachable end global.get $~lib/rt/stub/offset - local.set $3 global.get $~lib/rt/stub/offset i32.const 4 i32.add @@ -109,7 +108,6 @@ end local.get $5 global.set $~lib/rt/stub/offset - local.get $3 local.get $4 i32.store local.get $2 @@ -135,10 +133,8 @@ local.get $0 ) (func $~lib/rt/stub/__unpin (param $0 i32) - nop ) (func $~lib/rt/stub/__collect - nop ) (func $~start i32.const 1196 diff --git a/tests/compiler/scoped.debug.wat b/tests/compiler/scoped.debug.wat index 8bfcc7134e..4703e91d9b 100644 --- a/tests/compiler/scoped.debug.wat +++ b/tests/compiler/scoped.debug.wat @@ -32,7 +32,6 @@ i32.const 1 i32.lt_s if - nop local.get $anotherStartFunctionLocal i32.const 1 i32.add diff --git a/tests/compiler/simd.debug.wat b/tests/compiler/simd.debug.wat index a8afa06109..f6d7384348 100644 --- a/tests/compiler/simd.debug.wat +++ b/tests/compiler/simd.debug.wat @@ -131,37 +131,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -387,22 +385,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -616,27 +612,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -654,28 +648,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1000,27 +992,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1029,37 +1019,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1149,7 +1137,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1218,15 +1205,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1295,15 +1280,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1311,21 +1294,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1333,27 +1314,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1522,39 +1501,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1573,31 +1550,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -6844,7 +6819,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/simd.release.wat b/tests/compiler/simd.release.wat index e4b1c6e9ec..218b6a5907 100644 --- a/tests/compiler/simd.release.wat +++ b/tests/compiler/simd.release.wat @@ -867,7 +867,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -900,7 +899,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2215,7 +2213,6 @@ i32.const 1392 global.set $~lib/rt/itcms/fromSpace global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -2228,14 +2225,12 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 1 call $~lib/rt/itcms/__new local.tee $3 i32.const 1056 v128.load align=1 v128.store align=1 - local.get $1 local.get $3 i32.store i32.const 4 @@ -2306,7 +2301,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $4 i32.store global.get $~lib/memory/__stack_pointer @@ -2343,12 +2337,10 @@ local.get $4 i32.load offset=4 v128.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 i32x4.extract_lane 0 i32.const 1 i32.ne diff --git a/tests/compiler/std/array-access.debug.wat b/tests/compiler/std/array-access.debug.wat index 5df4a1ad29..a86f14c3ee 100644 --- a/tests/compiler/std/array-access.debug.wat +++ b/tests/compiler/std/array-access.debug.wat @@ -132,40 +132,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/std/array-access.release.wat b/tests/compiler/std/array-access.release.wat index 3d9964179a..a76d742da9 100644 --- a/tests/compiler/std/array-access.release.wat +++ b/tests/compiler/std/array-access.release.wat @@ -117,11 +117,9 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 1296 i32.store - local.get $1 i32.const 1292 i32.load i32.const 1 @@ -289,7 +287,6 @@ local.get $0 i32.load offset=4 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add @@ -302,7 +299,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -352,7 +348,6 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -361,7 +356,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -413,7 +407,6 @@ i32.store offset=4 local.get $0 call $~lib/string/String#startsWith - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -422,7 +415,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -482,7 +474,6 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -491,7 +482,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -550,7 +540,6 @@ i32.store offset=4 local.get $0 call $~lib/string/String#startsWith - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.add @@ -559,7 +548,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 34096 @@ -602,7 +590,6 @@ call $~lib/array/Array<~lib/array/Array>#__get i32.load call_indirect (type $0) - drop unreachable end i32.const 34096 diff --git a/tests/compiler/std/array-literal.debug.wat b/tests/compiler/std/array-literal.debug.wat index 5d1fd0eb92..805fdac3a4 100644 --- a/tests/compiler/std/array-literal.debug.wat +++ b/tests/compiler/std/array-literal.debug.wat @@ -127,37 +127,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 512 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 512 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -383,22 +381,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -612,27 +608,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -650,28 +644,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -996,27 +988,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1025,37 +1015,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1145,7 +1133,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1214,15 +1201,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1291,15 +1276,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1307,21 +1290,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1329,27 +1310,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1518,39 +1497,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1569,31 +1546,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2481,7 +2456,6 @@ i32.load offset=4 ) (func $std/array-literal/doesntLeak (param $refs i32) - nop ) (func $~lib/rt/itcms/__collect i32.const 0 @@ -2503,16 +2477,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2607,7 +2579,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -4000,27 +3971,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -4072,27 +4041,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/array-literal.release.wat b/tests/compiler/std/array-literal.release.wat index a1e7cf5fff..aee35e910a 100644 --- a/tests/compiler/std/array-literal.release.wat +++ b/tests/compiler/std/array-literal.release.wat @@ -1092,7 +1092,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1125,7 +1124,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1828,12 +1826,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1877,12 +1873,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1928,12 +1922,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -2226,7 +2218,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2255,7 +2246,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/array.debug.wat b/tests/compiler/std/array.debug.wat index a962cdc1ab..752b4957b2 100644 --- a/tests/compiler/std/array.debug.wat +++ b/tests/compiler/std/array.debug.wat @@ -436,37 +436,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -692,22 +690,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -921,27 +917,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -959,28 +953,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1305,27 +1297,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1334,37 +1324,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1454,7 +1442,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1523,15 +1510,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1600,15 +1585,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1616,21 +1599,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1638,27 +1619,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1827,39 +1806,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1878,31 +1855,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -3268,42 +3243,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -3397,42 +3370,40 @@ i32.const 8 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + i32.const 7 + i32.add + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - i32.const 7 i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.add - local.set $front - local.get $ptr - local.get $tail - i32.add - local.get $i - i32.sub - local.set $back - local.get $front - i64.load - call $~lib/polyfills/bswap - local.set $temp - local.get $front - local.get $back - i64.load - call $~lib/polyfills/bswap - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 8 - i32.add - local.set $i - br $while-continue|0 - end + local.set $front + local.get $ptr + local.get $tail + i32.add + local.get $i + i32.sub + local.set $back + local.get $front + i64.load + call $~lib/polyfills/bswap + local.set $temp + local.get $front + local.get $back + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 8 + i32.add + local.set $i + br $while-continue|0 end end i32.const 1 @@ -3443,42 +3414,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 0 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load8_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load8_u - i32.store8 - local.get $back|9 - local.get $temp|10 - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 - end + i32.const 0 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load8_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load8_u + i32.store8 + local.get $back|9 + local.get $temp|10 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 end end end @@ -3527,90 +3496,86 @@ i32.const 2 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i i32.const 1 + i32.shl i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back - local.get $back - i32.load - i32.const 16 - i32.rotr - local.set $temp - local.get $back - local.get $front - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $front - local.get $temp - i32.store - local.get $i - i32.const 2 - i32.add - local.set $i - br $while-continue|0 - end + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back + local.get $back + i32.load + i32.const 16 + i32.rotr + local.set $temp + local.get $back + local.get $front + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $front + local.get $temp + i32.store + local.get $i + i32.const 2 + i32.add + local.set $i + br $while-continue|0 end end local.get $len i32.const 1 i32.sub local.set $tail - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load16_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load16_u - i32.store16 - local.get $back|9 - local.get $temp|10 - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 - end + i32.const 1 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load16_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load16_u + i32.store16 + local.get $back|9 + local.get $temp|10 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 end end end @@ -3784,61 +3749,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 6700 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6700 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -3915,37 +3878,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 7120 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7120 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -3999,44 +3960,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -4397,151 +4354,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - f32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - f32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + f32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - f32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - f32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - f32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + f32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - f32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + f32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -4581,87 +4536,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $7) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $7) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -4962,151 +4913,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - f64.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - f64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + f64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - f64.store offset=16 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - f64.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - f64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + f64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - f64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + f64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -5146,87 +5095,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -5476,151 +5421,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -5660,87 +5603,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -5961,151 +5900,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -6145,87 +6082,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -6658,40 +6591,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -6808,22 +6739,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6876,22 +6805,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.3 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6960,454 +6887,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 12368 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 12368 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 12368 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 12368 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -7632,22 +7546,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.4 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -7713,22 +7625,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.5 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -7912,115 +7822,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 11496 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 12192 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 11496 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 12192 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -8498,22 +8404,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.6 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -8572,22 +8476,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.7 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -8728,22 +8630,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.8 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -8827,109 +8727,107 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i64.const 100000000 + i64.ge_u + if local.get $num i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t - local.get $num - local.get $t - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 6700 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 6700 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6700 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 6700 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6700 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6700 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $buffer @@ -8996,44 +8894,40 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.10 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - block $~lib/util/number/utoa64_dec_core|inlined.1 - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end local.get $sign local.get $decimals @@ -9134,44 +9028,40 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.12 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - block $~lib/util/number/utoa64_dec_core|inlined.3 - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end local.get $sign local.get $decimals @@ -9244,22 +9134,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.13 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -9324,16 +9212,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -9419,7 +9305,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -12942,36 +12827,34 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $len + i32.lt_s + if + local.get $ptr local.get $fromIndex - local.get $len - i32.lt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq if - local.get $ptr local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq - if - local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $fromIndex - i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -13049,36 +12932,34 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $len + i32.lt_s + if + local.get $ptr local.get $fromIndex - local.get $len - i32.lt_s + i32.const 2 + i32.shl + i32.add + f32.load + local.get $value + f32.eq if - local.get $ptr local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.get $value - f32.eq - if - local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $fromIndex - i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -13156,36 +13037,34 @@ local.get $7 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $len + i32.lt_s + if + local.get $ptr local.get $fromIndex - local.get $len - i32.lt_s + i32.const 3 + i32.shl + i32.add + f64.load + local.get $value + f64.eq if - local.get $ptr local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.get $value - f64.eq - if - local.get $fromIndex - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $fromIndex - i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -13257,36 +13136,34 @@ local.get $5 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + i32.const 0 + i32.ge_s + if + local.get $ptr local.get $fromIndex - i32.const 0 - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq if - local.get $ptr local.get $fromIndex - i32.const 2 - i32.shl + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load - local.get $value - i32.eq - if - local.get $fromIndex - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $fromIndex - i32.const 1 - i32.sub - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $fromIndex + i32.const 1 + i32.sub + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -13443,49 +13320,47 @@ local.get $8 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $len + i32.lt_s + if + local.get $ptr local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr - local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem + local.get $elem + local.get $value + f32.eq + if (result i32) + i32.const 1 + else + local.get $elem local.get $elem + f32.ne local.get $value - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f32.ne - local.get $value - local.get $value - f32.ne - i32.and - end - if - i32.const 1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $fromIndex + local.get $value + f32.ne + i32.and + end + if i32.const 1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $8 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const 0 @@ -13496,12 +13371,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 return - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) (func $~lib/array/Array#includes (param $this i32) (param $value f64) (param $fromIndex i32) (result i32) (local $len i32) @@ -13572,49 +13441,47 @@ local.get $8 call $~lib/array/Array#get:dataStart local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $len + i32.lt_s + if + local.get $ptr local.get $fromIndex - local.get $len - i32.lt_s - if - local.get $ptr - local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem + local.get $elem + local.get $value + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem local.get $elem + f64.ne local.get $value - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f64.ne - local.get $value - local.get $value - f64.ne - i32.and - end - if - i32.const 1 - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - return - end - local.get $fromIndex + local.get $value + f64.ne + i32.and + end + if i32.const 1 + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $8 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const 0 @@ -13625,12 +13492,6 @@ global.set $~lib/memory/__stack_pointer local.get $8 return - local.set $8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 ) (func $~lib/array/Array#splice (param $this i32) (param $start i32) (param $deleteCount i32) (result i32) (local $len i32) @@ -16667,145 +16528,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -17240,145 +17099,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -18084,145 +17941,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -18655,145 +18510,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -19350,32 +19203,30 @@ i32.const 2 i32.shl local.set $end|18 - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $off + local.get $end|18 + i32.lt_u + if + local.get $thisBase local.get $off - local.get $end|18 - i32.lt_u - if - local.get $thisBase - local.get $off - i32.add - i32.load - local.set $ref - local.get $sliceBase - local.get $off - i32.add - local.get $ref - i32.store - local.get $slice - local.get $ref - i32.const 1 - call $~lib/rt/itcms/__link - local.get $off - i32.const 4 - i32.add - local.set $off - br $while-continue|0 - end + i32.add + i32.load + local.set $ref + local.get $sliceBase + local.get $off + i32.add + local.get $ref + i32.store + local.get $slice + local.get $ref + i32.const 1 + call $~lib/rt/itcms/__link + local.get $off + i32.const 4 + i32.add + local.set $off + br $while-continue|0 end end local.get $slice @@ -19505,197 +19356,195 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $max + i32.store offset=12 + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $a + local.get $b local.tee $max i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $max - i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -19767,99 +19616,95 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -20410,145 +20255,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -21250,197 +21093,195 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $max + i32.store offset=12 + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $a + local.get $b local.tee $max i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $max - i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -21512,99 +21353,95 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -22155,145 +21992,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/extendRunRight<~lib/array/Array> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/extendRunRight<~lib/array/Array> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort<~lib/array/Array> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/insertionSort<~lib/array/Array> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/array/Array> local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/array/Array> - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -23013,197 +22848,195 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $max + i32.store offset=12 + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $a + local.get $b local.tee $max i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $max - i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -23275,99 +23108,95 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -23918,145 +23747,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/extendRunRight> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/extendRunRight> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/insertionSort> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns> local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns> - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -24433,197 +24260,195 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $max + i32.store offset=12 + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $a + local.get $b local.tee $max i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $max - i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -24695,99 +24520,95 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -25338,145 +25159,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/extendRunRight<~lib/string/String|null> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/extendRunRight<~lib/string/String|null> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort<~lib/string/String|null> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/insertionSort<~lib/string/String|null> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/string/String|null> local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/string/String|null> - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -26795,197 +26614,195 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.tee $b + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $b + local.tee $min + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $a + local.tee $max + i32.store offset=12 + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $b + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $a - i32.store - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.tee $b - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $b + local.get $a local.tee $min i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $a + local.get $b local.tee $max i32.store offset=12 - local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $b - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - global.get $~lib/memory/__stack_pointer - local.get $a - local.tee $min - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $b - local.tee $max - i32.store offset=12 - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $max + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $max - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $a + i32.store + local.get $a + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=16 + local.get $12 + local.get $min + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=20 + local.get $12 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if - global.get $~lib/memory/__stack_pointer local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.tee $a - i32.store local.get $a - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=16 - local.get $12 - local.get $min - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=20 - local.get $12 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -27057,99 +26874,95 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $tmp + i32.store offset=8 + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $tmp - i32.store offset=8 - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -27700,145 +27513,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/extendRunRight<~lib/string/String> + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store offset=8 local.get $34 - call $~lib/util/sort/extendRunRight<~lib/string/String> - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort<~lib/string/String> + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/insertionSort<~lib/string/String> - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store offset=8 + local.get $34 + call $~lib/util/sort/mergeRuns<~lib/string/String> local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store offset=8 - local.get $34 - call $~lib/util/sort/mergeRuns<~lib/string/String> - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -29713,12 +29524,6 @@ global.set $~lib/memory/__stack_pointer local.get $4 return - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 ) (func $~lib/util/string/joinReferenceArray (param $dataStart i32) (param $length i32) (param $separator i32) (result i32) (local $lastIndex i32) @@ -45082,27 +44887,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45206,27 +45009,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45326,27 +45127,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45518,27 +45317,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45710,27 +45507,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45806,27 +45601,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -45902,27 +45695,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -46152,27 +45943,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -46224,27 +46013,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -46296,27 +46083,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -46368,27 +46153,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -46564,24 +46347,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -46606,25 +46387,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 @@ -46761,22 +46540,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -46799,23 +46576,21 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.1 - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut else local.get $value i64.extend_i32_u @@ -47003,22 +46778,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.9 - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -47031,22 +46804,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.0 - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -47071,22 +46842,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.0 - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix @@ -47213,24 +46982,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.11 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -47245,24 +47012,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.2 - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -47289,24 +47054,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.1 - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix diff --git a/tests/compiler/std/array.release.wat b/tests/compiler/std/array.release.wat index 6614cc0006..0d14dcf146 100644 --- a/tests/compiler/std/array.release.wat +++ b/tests/compiler/std/array.release.wat @@ -1492,7 +1492,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1525,7 +1524,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2628,7 +2626,6 @@ i32.shl i32.add f32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -2638,11 +2635,8 @@ i32.shl i32.add f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -2661,14 +2655,10 @@ i32.add local.tee $6 f32.load offset=4 - local.set $5 local.get $6 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -2736,14 +2726,10 @@ i32.add local.tee $1 f32.load offset=4 - local.set $5 local.get $1 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $5) @@ -3090,7 +3076,6 @@ i32.shl i32.add f64.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -3100,11 +3085,8 @@ i32.shl i32.add f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3123,14 +3105,10 @@ i32.add local.tee $6 f64.load offset=8 - local.set $4 local.get $6 f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3198,14 +3176,10 @@ i32.add local.tee $1 f64.load offset=8 - local.set $4 local.get $1 f64.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10544 i32.load call_indirect (type $6) @@ -3551,7 +3525,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -3561,11 +3534,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -3584,14 +3554,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -3659,14 +3625,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -3986,7 +3948,6 @@ i32.shl i32.add i32.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -3996,11 +3957,8 @@ i32.shl i32.add i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 10848 i32.load call_indirect (type $0) @@ -4019,14 +3977,10 @@ i32.add local.tee $4 i32.load offset=4 - local.set $5 local.get $4 i32.load - local.set $4 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $4 i32.const 10848 i32.load call_indirect (type $0) @@ -4094,14 +4048,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $4 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $1 i32.const 10848 i32.load call_indirect (type $0) @@ -6698,12 +6648,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6747,12 +6695,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7044,12 +6990,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7339,12 +7283,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -7429,11 +7371,9 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $5 local.get $1 local.get $2 call $~lib/array/Array#__get @@ -7569,12 +7509,10 @@ i32.load offset=16 i32.const 2 i32.shr_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -7812,12 +7750,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#pop (param $0 i32) (result i32) (local $1 i32) @@ -7869,7 +7805,6 @@ i32.shl i32.add i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -7880,7 +7815,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -8009,12 +7943,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8280,12 +8212,10 @@ local.get $2 local.get $3 call $~lib/array/Array#copyWithin - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/array/isArraysEqual (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -8527,11 +8457,9 @@ i32.store local.get $3 i32.load offset=4 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -8590,12 +8518,10 @@ local.get $1 local.get $2 call $~lib/array/Array#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#reverse (param $0 i32) (result i32) (local $1 i32) @@ -8945,12 +8871,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9181,12 +9105,10 @@ local.get $1 local.get $2 call $~lib/array/Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#includes (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -9216,12 +9138,10 @@ call $~lib/array/Array#indexOf i32.const 0 i32.ge_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9300,11 +9220,9 @@ i32.store local.get $1 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=4 local.tee $2 @@ -9391,12 +9309,10 @@ local.get $1 local.get $2 call $~lib/array/Array#splice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#splice (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9476,11 +9392,9 @@ i32.store local.get $5 i32.load offset=4 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=4 local.tee $3 @@ -9765,13 +9679,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -9908,13 +9820,11 @@ i32.shl i32.add i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $3 local.get $2 local.get $0 local.get $1 @@ -9994,13 +9904,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -10147,13 +10055,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -10299,13 +10205,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -11095,7 +10999,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -11124,7 +11027,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -11643,18 +11545,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -12149,12 +12047,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/util/sort/SORT (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -12615,18 +12511,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -13241,18 +13133,14 @@ i32.const 1 i32.sub call $~lib/array/Array#__get - local.set $4 global.get $~lib/memory/__stack_pointer local.get $2 i32.store local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 local.get $1 i32.load call_indirect (type $0) @@ -13358,20 +13246,16 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/sort/insertionSort (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (param $4 i32) (local $5 i32) @@ -14432,18 +14316,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -14477,21 +14357,17 @@ local.get $0 i32.const 0 call $~lib/array/Array#__get - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 0 call $~lib/array/Array#__get i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/array/assertSorted<~lib/array/Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -14964,12 +14840,10 @@ i32.const 0 end i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -16030,26 +15904,20 @@ i32.store local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#join (param $0 i32) (result i32) (local $1 i32) @@ -16128,12 +15996,10 @@ else i32.const 11568 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 br $__inlined_func$~lib/util/string/joinReferenceArray$6 end i32.const 11568 @@ -16236,12 +16102,10 @@ global.set $~lib/memory/__stack_pointer local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 48992 @@ -16279,12 +16143,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#toString (param $0 i32) (result i32) (local $1 i32) @@ -17254,12 +17116,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array<~lib/string/String|null>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#toString (param $0 i32) (result i32) (local $1 i32) @@ -17496,12 +17356,10 @@ local.get $0 i32.const 11856 call $~lib/array/Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/array/Array>#toString (param $0 i32) (result i32) (local $1 i32) @@ -17515,22 +17373,48 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16192 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store + block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 (result i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 20 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -17539,198 +17423,161 @@ br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 20 + memory.fill local.get $0 - i32.load offset=12 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store - block $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 (result i32) + i32.const 1 + i32.sub + local.tee $4 + i32.const 0 + i32.lt_s + if global.get $~lib/memory/__stack_pointer i32.const 20 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + i32.const 11568 + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + end + local.get $4 + i32.eqz + if global.get $~lib/memory/__stack_pointer - i32.const 16192 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill + local.get $5 + i32.load + local.tee $0 + i32.store local.get $0 - i32.const 1 - i32.sub - local.tee $4 - i32.const 0 - i32.lt_s - if + if (result i32) global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/array/Array#toString + else i32.const 11568 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 end - local.get $4 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.load - local.tee $0 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 + end + i32.const 11568 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 11568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=4 + i32.const 11852 + i32.load + i32.const 1 + i32.shr_u + local.set $2 + loop $for-loop|0 + local.get $1 + local.get $4 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $5 + local.get $1 + i32.const 2 + i32.shl + i32.add + i32.load + local.tee $6 i32.store - local.get $0 - if (result i32) + local.get $6 + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $6 call $~lib/array/Array#toString - else - i32.const 11568 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/util/string/joinReferenceArray<~lib/array/Array>$7 - end - i32.const 11568 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 11568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=4 - i32.const 11852 - i32.load - i32.const 1 - i32.shr_u - local.set $2 - loop $for-loop|0 - local.get $1 - local.get $4 - i32.lt_s + local.get $2 if global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $1 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $6 - i32.store - local.get $6 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $6 - call $~lib/array/Array#toString - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $3 - local.get $0 - local.get $6 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $2 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 11856 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 11856 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 - end - local.get $1 - i32.const 1 - i32.add - local.set $1 - br $for-loop|0 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 11856 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 11856 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - local.get $4 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $1 - i32.store - local.get $1 - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.set $2 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=16 - local.get $1 - call $~lib/array/Array#toString + i32.const 1 + i32.add local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $2 - local.get $0 - local.get $1 - call $~lib/string/String.__concat - local.tee $0 - i32.store offset=8 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $5 + local.get $4 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer + i32.load + local.tee $1 + i32.store + local.get $1 + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + local.get $1 + call $~lib/array/Array#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String.__concat + local.tee $0 + i32.store offset=8 + end global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 20 i32.add global.set $~lib/memory/__stack_pointer local.get $0 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 48992 i32.const 49040 @@ -18033,7 +17880,6 @@ local.tee $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 @@ -18118,7 +17964,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 local.get $2 i32.store global.get $~lib/memory/__stack_pointer @@ -19139,7 +18984,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -19158,7 +19002,6 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $2 local.get $8 i32.store offset=24 global.get $~lib/memory/__stack_pointer @@ -20432,7 +20275,6 @@ i32.load offset=4 local.tee $9 i32.load - local.set $10 local.get $9 local.get $9 i32.const 4 @@ -20460,7 +20302,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $10 global.set $std/array/i global.get $std/array/i i32.const 41 @@ -21142,7 +20983,6 @@ i32.const 44 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $2 i32.const 4 i32.const 0 i32.const 7 @@ -21152,7 +20992,6 @@ global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $2 local.get $4 call $~lib/array/Array#reverse local.tee $2 @@ -21174,11 +21013,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -21202,7 +21039,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 0 i32.const 7 @@ -21212,7 +21048,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse local.tee $2 @@ -21236,11 +21071,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -21264,7 +21097,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 17 i32.const 0 i32.const 7 @@ -21274,7 +21106,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse local.tee $2 @@ -21298,11 +21129,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -21326,7 +21155,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 7 i32.const 1 i32.const 11 @@ -21336,7 +21164,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse local.tee $2 @@ -21360,11 +21187,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -21388,7 +21213,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 1 i32.const 11 @@ -21398,7 +21222,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse local.tee $2 @@ -21422,11 +21245,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -21450,7 +21271,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 9 i32.const 1 i32.const 11 @@ -21460,7 +21280,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 call $~lib/array/Array#reverse local.tee $2 @@ -21484,11 +21303,9 @@ local.get $2 local.get $0 call $~lib/array/Array#__get - local.set $8 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $8 local.get $2 call $~lib/array/Array#get:length local.get $0 @@ -23412,7 +23229,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 5 i32.const 2 @@ -23446,7 +23262,6 @@ i32.const 5 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer @@ -23599,7 +23414,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 @@ -23622,11 +23436,9 @@ i32.const 2 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $2 i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -23681,11 +23493,9 @@ i32.store local.get $10 i32.load offset=4 - local.set $11 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $11 local.get $2 i32.load offset=4 local.tee $11 @@ -23730,7 +23540,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $10 i32.store offset=112 global.get $~lib/memory/__stack_pointer @@ -24751,7 +24560,6 @@ i32.const 3 call $~lib/array/Array#push global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -24855,11 +24663,9 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $9 i32.store offset=128 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $2 @@ -24955,7 +24761,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $9 i32.store offset=132 global.get $~lib/memory/__stack_pointer @@ -24979,12 +24784,10 @@ local.get $9 i32.const 0 call $~lib/array/Array#__get - local.set $7 global.get $~lib/memory/__stack_pointer global.get $std/array/arr local.tee $0 i32.store - local.get $7 local.get $0 i32.const 0 call $~lib/array/Array#__get @@ -26465,18 +26268,14 @@ i32.store offset=4 local.get $2 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=4 local.get $2 i32.load offset=12 - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 10544 i32.store - local.get $0 - local.get $4 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -26571,11 +26370,9 @@ i64.const 63 i64.shr_u i32.wrap_i64 - local.set $9 global.get $~lib/memory/__stack_pointer local.get $4 i32.store - local.get $9 local.get $4 local.get $0 call $~lib/array/Array#__get @@ -26754,18 +26551,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 i32.load offset=12 - local.set $4 global.get $~lib/memory/__stack_pointer i32.const 10848 i32.store - local.get $2 - local.get $4 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer i32.const 8 @@ -27067,7 +26860,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer global.get $std/array/inputStabArr local.tee $0 @@ -27189,7 +26981,6 @@ global.get $~lib/memory/__stack_pointer i32.const 11216 i32.store offset=4 - local.get $2 local.get $9 i32.const 11216 call $~lib/array/Array#sort @@ -27234,11 +27025,9 @@ i32.store local.get $8 i32.load - local.set $10 global.get $~lib/memory/__stack_pointer local.get $9 i32.store - local.get $10 local.get $9 i32.load i32.ne @@ -27250,11 +27039,9 @@ i32.store local.get $8 i32.load offset=4 - local.set $8 global.get $~lib/memory/__stack_pointer local.get $9 i32.store - local.get $8 local.get $9 i32.load offset=4 i32.ne @@ -27333,7 +27120,6 @@ i32.const 11344 call $std/array/assertSorted global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27349,7 +27135,6 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27439,7 +27224,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store i32.const 0 @@ -27484,7 +27268,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=312 global.get $~lib/memory/__stack_pointer @@ -27497,7 +27280,6 @@ i32.const 11376 call $std/array/assertSorted<~lib/array/Array> global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -27513,7 +27295,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -27603,7 +27384,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $2 i32.store i32.const 0 @@ -27663,7 +27443,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $2 i32.store offset=316 global.get $~lib/memory/__stack_pointer @@ -27947,12 +27726,10 @@ local.get $9 call $~lib/string/String.__eq i32.eqz - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 if global.get $~lib/memory/__stack_pointer i32.const 12 @@ -27984,7 +27761,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $8 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -28000,7 +27776,6 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -28090,7 +27865,6 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 local.get $9 i32.store i32.const 0 @@ -28136,16 +27910,13 @@ local.get $0 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $11 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=12 call $~lib/math/NativeMath.random - local.set $6 global.get $~lib/memory/__stack_pointer i32.const 10032 i32.store offset=16 - local.get $6 i32.const 10028 i32.load i32.const 1 @@ -28207,7 +27978,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=8 - local.get $11 local.get $0 local.get $2 call $~lib/string/String.__concat @@ -28242,7 +28012,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $8 local.get $9 i32.store offset=328 global.get $~lib/memory/__stack_pointer @@ -28639,18 +28408,14 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12288 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -28710,7 +28475,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 3 i32.const 2 @@ -28733,7 +28497,6 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=340 global.get $~lib/memory/__stack_pointer @@ -28764,7 +28527,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -28783,7 +28545,6 @@ i32.const 0 call $std/array/Ref#constructor call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=348 global.get $~lib/memory/__stack_pointer @@ -29133,18 +28894,14 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11856 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinIntegerArray local.set $0 global.get $~lib/memory/__stack_pointer @@ -29640,7 +29397,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -29665,7 +29421,6 @@ i32.const 15136 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=376 global.get $~lib/memory/__stack_pointer @@ -29802,7 +29557,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -29812,7 +29566,6 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 local.get $2 local.get $8 call $~lib/string/String.__concat @@ -29856,7 +29609,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 @@ -29866,7 +29618,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $1 local.get $2 local.get $0 call $~lib/string/String.__concat @@ -29905,7 +29656,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -29930,7 +29680,6 @@ i32.const 15248 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=384 global.get $~lib/memory/__stack_pointer @@ -30067,7 +29816,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -30077,7 +29825,6 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 local.get $2 local.get $8 call $~lib/string/String.__concat @@ -30121,7 +29868,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 @@ -30131,7 +29877,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $1 local.get $2 local.get $0 call $~lib/string/String.__concat @@ -30170,7 +29915,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 1 i32.const 2 @@ -30199,7 +29943,6 @@ i32.const 0 local.get $2 call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=396 global.get $~lib/memory/__stack_pointer @@ -30336,7 +30079,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $9 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=16 @@ -30346,7 +30088,6 @@ global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=12 - local.get $9 local.get $2 local.get $8 call $~lib/string/String.__concat @@ -30390,7 +30131,6 @@ local.get $2 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=16 @@ -30400,7 +30140,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=12 - local.get $1 local.get $2 local.get $0 call $~lib/string/String.__concat @@ -30439,7 +30178,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -30480,7 +30218,6 @@ i32.const 15408 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=404 global.get $~lib/memory/__stack_pointer @@ -30537,7 +30274,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.const 2 @@ -30578,11 +30314,9 @@ i32.const 15760 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=416 global.get $~lib/memory/__stack_pointer - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -30742,7 +30476,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 local.get $10 i32.store offset=420 global.get $~lib/memory/__stack_pointer @@ -30819,7 +30552,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -30844,7 +30576,6 @@ i32.const 15888 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=432 global.get $~lib/memory/__stack_pointer @@ -30867,7 +30598,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 2 i32.const 2 @@ -30892,11 +30622,9 @@ i32.const 15952 call $~lib/rt/__newArray call $~lib/array/Array#__set - local.get $0 local.get $1 i32.store offset=440 global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 @@ -31002,7 +30730,6 @@ global.get $~lib/memory/__stack_pointer local.get $3 i32.store - local.get $0 local.get $3 call $~lib/array/Array<~lib/array/Array>#flat local.tee $0 @@ -31162,7 +30889,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -31177,7 +30903,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/std/arraybuffer.debug.wat b/tests/compiler/std/arraybuffer.debug.wat index 51a2afb1a2..79b69d7b74 100644 --- a/tests/compiler/std/arraybuffer.debug.wat +++ b/tests/compiler/std/arraybuffer.debug.wat @@ -100,37 +100,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -356,22 +354,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -585,27 +581,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -623,28 +617,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -969,27 +961,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -998,37 +988,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1118,7 +1106,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1187,15 +1174,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1264,15 +1249,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1280,21 +1263,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1302,27 +1283,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1491,39 +1470,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1542,31 +1519,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2666,16 +2641,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2721,7 +2694,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/arraybuffer.release.wat b/tests/compiler/std/arraybuffer.release.wat index 230613dbb0..d7d3749387 100644 --- a/tests/compiler/std/arraybuffer.release.wat +++ b/tests/compiler/std/arraybuffer.release.wat @@ -1042,7 +1042,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1075,7 +1074,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1866,624 +1864,615 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 34552 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 8 + i32.ne + if i32.const 0 - i32.const 24 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 34552 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer + i32.const 1568 i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 8 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 + i32.const 1568 i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 4 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.eq + if i32.const 0 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -1 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 + i32.const 1568 + i32.const 9 i32.const 3 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 6 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -3 - i32.const -1 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 29 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const -4 - i32.const 42 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 42 - i32.const 1073741820 - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 38 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 6 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 7 + i32.ne + if i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -1 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 1 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.set $0 - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.const 1632 - i64.load align=1 - i64.store align=1 - local.get $0 - local.get $2 - i32.store - i32.const 16 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $0 - local.get $2 - i32.store - local.get $0 - local.get $2 - call $~lib/rt/itcms/__link - local.get $0 - local.get $2 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 + i32.const 1568 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const 3 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 6 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -3 + i32.const -1 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 29 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const -4 + i32.const 42 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 42 + i32.const 1073741820 + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 38 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 6 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 0 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.const 1632 + i64.load align=1 + i64.store align=1 + local.get $2 + i32.store + i32.const 16 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + local.get $2 + i32.store + local.get $0 + local.get $2 + call $~lib/rt/itcms/__link + local.get $0 + local.get $2 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + local.get $0 + i32.const 2 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/arraybuffer/ArrayBufferView#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $0 + i32.store offset=16 + block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) global.get $~lib/memory/__stack_pointer i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 2 - call $~lib/arraybuffer/ArrayBufferView#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $0 - i32.store offset=16 - block $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 (result i32) + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1784 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1784 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - local.get $1 - i32.lt_u - local.get $1 - i32.const 1073741820 - i32.gt_u - i32.or - if - i32.const 1056 - i32.const 1664 - i32.const 25 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $2 - local.get $0 - i32.store - local.get $2 - local.get $0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 - end - br $folding-inner1 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - i32.const 34552 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end + global.get $~lib/memory/__stack_pointer + i32.const 1784 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + local.get $1 + i32.lt_u + local.get $1 + i32.const 1073741820 + i32.gt_u + i32.or + if + i32.const 1056 + i32.const 1664 + i32.const 25 + i32.const 7 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $2 + local.get $0 + i32.store + local.get $2 + local.get $0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + br $__inlined_func$~lib/dataview/DataView#constructor@varargs$1 end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 + br $folding-inner1 + end + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 34552 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|0 end end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34576 i32.const 34624 diff --git a/tests/compiler/std/dataview.debug.wat b/tests/compiler/std/dataview.debug.wat index c10117debf..d2e17e744a 100644 --- a/tests/compiler/std/dataview.debug.wat +++ b/tests/compiler/std/dataview.debug.wat @@ -107,37 +107,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -363,22 +361,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -592,27 +588,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -630,28 +624,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -976,27 +968,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1005,37 +995,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1125,7 +1113,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1194,15 +1181,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1271,15 +1256,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1287,21 +1270,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1309,27 +1290,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1498,39 +1477,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1549,31 +1526,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2554,16 +2529,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2609,7 +2582,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/typedarray/Uint8Array~visit (param $0 i32) (param $1 i32) local.get $0 diff --git a/tests/compiler/std/dataview.release.wat b/tests/compiler/std/dataview.release.wat index da2a59de2a..427669238d 100644 --- a/tests/compiler/std/dataview.release.wat +++ b/tests/compiler/std/dataview.release.wat @@ -1050,7 +1050,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1083,7 +1082,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1605,23 +1603,20 @@ (func $~lib/rt/__visit_members (param $0 i32) block $folding-inner0 block $invalid - block - block $~lib/string/String - block $~lib/arraybuffer/ArrayBuffer - block $~lib/object/Object - local.get $0 - i32.const 8 - i32.sub - i32.load - br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid - end - return + block $~lib/string/String + block $~lib/arraybuffer/ArrayBuffer + block $~lib/object/Object + local.get $0 + i32.const 8 + i32.sub + i32.load + br_table $~lib/object/Object $~lib/arraybuffer/ArrayBuffer $~lib/string/String $folding-inner0 $folding-inner0 $folding-inner0 $invalid end return end return end - unreachable + return end unreachable end @@ -1808,20 +1803,16 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getFloat32 (param $0 i32) (param $1 i32) (param $2 i32) (result f32) (local $3 f32) @@ -1896,12 +1887,10 @@ i32.or f32.reinterpret_i32 end - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/dataview/DataView#getFloat64 (param $0 i32) (param $1 i32) (result f64) (local $2 i64) @@ -1980,12 +1969,10 @@ i64.rotr f64.reinterpret_i64 end - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/dataview/DataView#getInt8 (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2029,12 +2016,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getInt16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2292,12 +2277,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/dataview/DataView#getUint16 (param $0 i32) (param $1 i32) (param $2 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3061,2251 +3044,2242 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + memory.size + i32.const 16 + i32.shl + i32.const 34540 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - memory.size - i32.const 16 - i32.shl - i32.const 34540 + i32.const 8 i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - block $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 (result i32) + global.set $~lib/memory/__stack_pointer + block $folding-inner00 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 1772 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner00 - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner00 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + local.get $0 + i32.eqz + if global.get $~lib/memory/__stack_pointer i32.const 12 - i32.const 4 + i32.const 3 call $~lib/rt/itcms/__new local.tee $0 i32.store - global.get $~lib/memory/__stack_pointer - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner00 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - local.get $0 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.const 3 - call $~lib/rt/itcms/__new - local.tee $0 - i32.store - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=12 - local.get $0 - local.get $2 - call $~lib/arraybuffer/ArrayBufferView#set:buffer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 end - br $folding-inner1 - end - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 246 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 224 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 88 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.const 159 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.const 130 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 5 - i32.const 101 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 6 - i32.const 67 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 7 - i32.const 95 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $2 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $0 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $0 - local.get $2 - local.get $3 - local.get $1 - i32.load offset=8 - call $~lib/dataview/DataView#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const -4.592586247781397e-20 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const -2.3413961970849473e-37 - f32.ne - if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 77105877018631129268224 - f32.ne - if + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 229.51023864746094 - f32.ne - if + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 i32.const 0 - i32.const 1696 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 14079802746555334656 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=12 + local.get $0 + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#set:buffer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + br $__inlined_func$~lib/typedarray/Uint8Array#constructor$3 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + br $folding-inner1 + end + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 246 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 224 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 88 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.const 159 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.const 130 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 5 + i32.const 101 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 6 + i32.const 67 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 7 + i32.const 95 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $2 + local.get $3 + local.get $1 + i32.load offset=8 + call $~lib/dataview/DataView#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -4.592586247781397e-20 + f32.ne + if i32.const 0 + i32.const 1696 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const -2.3413961970849473e-37 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -2275140518817895515269171e9 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 + i32.const 1696 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 77105877018631129268224 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -62437351080004157440 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + i32.const 1696 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 229.51023864746094 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const 1403059112509440 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 18 i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 14079802746555334656 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -5.522466503261712e-20 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 + i32.const 1696 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -2275140518817895515269171e9 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const -1.6843597451835358e-37 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getFloat64 - f64.const 7936550095674706383278551e126 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -62437351080004157440 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat64 - f64.const -411777475818852546741639e241 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 28 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const 1403059112509440 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -5.522466503261712e-20 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const -1.6843597451835358e-37 + f32.ne + if + i32.const 0 + i32.const 1696 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const 7936550095674706383278551e126 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getFloat64 + f64.const -411777475818852546741639e241 + f64.ne + if + i32.const 0 + i32.const 1696 + i32.const 28 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getInt8 + i32.const -10 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 30 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt8 + i32.const -32 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 31 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/dataview/DataView#getInt8 + i32.const 88 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 32 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/dataview/DataView#getInt8 + i32.const -97 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + call $~lib/dataview/DataView#getInt8 + i32.const -126 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 34 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + call $~lib/dataview/DataView#getInt8 + i32.const 101 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + call $~lib/dataview/DataView#getInt8 + i32.const 67 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 7 + call $~lib/dataview/DataView#getInt8 + i32.const 95 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 57590 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 39 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 22752 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 40 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 40792 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 41 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 33439 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 42 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 25986 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 43 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 17253 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 44 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 24387 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 63200 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 47 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 57432 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt8 - i32.const -10 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 30 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt8 - i32.const -32 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 31 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/dataview/DataView#getInt8 - i32.const 88 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 32 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 48 i32.const 3 - call $~lib/dataview/DataView#getInt8 - i32.const -97 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - call $~lib/dataview/DataView#getInt8 - i32.const -126 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 34 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - call $~lib/dataview/DataView#getInt8 - i32.const 101 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - call $~lib/dataview/DataView#getInt8 - i32.const 67 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 7 - call $~lib/dataview/DataView#getInt8 - i32.const 95 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 22687 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 57590 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 39 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 22752 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 40 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 40792 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 41 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 49 i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 33439 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 42 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 25986 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 43 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 17253 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 44 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 24387 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 40834 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 50 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 33381 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 25923 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 17247 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 63200 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 47 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 + i32.const 1696 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -1621565194 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 57432 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 48 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + i32.const 1696 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const -2103486240 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 22687 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 56 i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1703059288 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 40834 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 50 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 + i32.const 1696 + i32.const 57 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1130726047 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 33381 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 51 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 + i32.const 1696 + i32.const 58 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1598252418 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 25923 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 + i32.const 1696 + i32.const 59 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -153069409 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 17247 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 61 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -531062910 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const -1621565194 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const -2103486240 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1703059288 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 57 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 62 i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1130726047 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 58 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1598252418 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 59 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const 1486848613 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -1618844349 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -153069409 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 61 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 + i32.const 1696 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const -2107292833 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -531062910 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 62 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + i32.const 1696 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const 6864441868736323830 + i64.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const 1486848613 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 67 i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getInt64 + i64.const -657428103485373601 + i64.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -1618844349 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 + i32.const 1696 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getUint8 + i32.const 246 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const -2107292833 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt64 - i64.const 6864441868736323830 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint8 + i32.const 224 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt64 - i64.const -657428103485373601 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/dataview/DataView#getUint8 + i32.const 88 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint8 - i32.const 246 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint8 - i32.const 224 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - call $~lib/dataview/DataView#getUint8 - i32.const 88 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 72 i32.const 3 - call $~lib/dataview/DataView#getUint8 - i32.const 159 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - call $~lib/dataview/DataView#getUint8 - i32.const 130 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 74 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - call $~lib/dataview/DataView#getUint8 - i32.const 101 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 75 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - call $~lib/dataview/DataView#getUint8 - i32.const 67 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 76 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 7 - call $~lib/dataview/DataView#getUint8 - i32.const 95 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 77 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + call $~lib/dataview/DataView#getUint8 + i32.const 159 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 57590 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 79 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 22752 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 80 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 40792 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 81 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 73 i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 33439 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 82 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 25986 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 83 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 17253 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 84 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 24387 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 85 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + call $~lib/dataview/DataView#getUint8 + i32.const 130 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 74 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + call $~lib/dataview/DataView#getUint8 + i32.const 101 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 63200 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 87 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 + i32.const 1696 + i32.const 75 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + call $~lib/dataview/DataView#getUint8 + i32.const 67 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 57432 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 88 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + i32.const 1696 + i32.const 76 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 7 + call $~lib/dataview/DataView#getUint8 + i32.const 95 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 22687 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 89 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 77 i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57590 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 40834 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 90 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 + i32.const 1696 + i32.const 79 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22752 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 33381 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 91 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 5 + i32.const 1696 + i32.const 80 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40792 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 25923 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 92 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 6 + i32.const 1696 + i32.const 81 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33439 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 17247 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 93 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 82 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25986 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -1621565194 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -2103486240 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1703059288 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 83 i32.const 3 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1130726047 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const 1598252418 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17253 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 84 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 24387 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -153069409 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 + i32.const 1696 + i32.const 85 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 63200 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -531062910 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 102 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 + i32.const 1696 + i32.const 87 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 57432 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const 1486848613 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 88 i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 22687 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -1618844349 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 + i32.const 1696 + i32.const 89 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 40834 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -2107292833 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint64 - i64.const 6864441868736323830 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 107 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 90 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 33381 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint64 - i64.const -657428103485373601 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 108 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 1.5976661625240943e-18 - i32.const 1 - call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 91 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 5 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 25923 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getFloat32 - f32.const 1.5976661625240943e-18 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 111 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f32.const 1976281973381696323584 + i32.const 1696 + i32.const 92 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 6 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 17247 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setFloat32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 93 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -1621565194 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -2103486240 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat32 - f32.const 1976281973381696323584 - f32.ne - if - i32.const 0 - i32.const 1696 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const -1094252199637739024055454e124 - i32.const 1 - call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getFloat64 - f64.const -1094252199637739024055454e124 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 117 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - f64.const 6.022586634778589e-103 + i32.const 1696 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1703059288 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setFloat64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1130726047 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getFloat64 - f64.const 6.022586634778589e-103 - f64.ne - if - i32.const 0 - i32.const 1696 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const 1598252418 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.eqz - if - i32.const 1360 - i32.const 1632 - i32.const 109 - i32.const 50 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 108 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -153069409 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt8 - i32.const 108 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -13360 - i32.const 1 - call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -531062910 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 52176 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 14689 + i32.const 1696 + i32.const 102 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const 1486848613 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setInt16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -1618844349 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -2107292833 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt16 - i32.const 65535 - i32.and - i32.const 14689 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1204680201 - i32.const 1 - call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 6864441868736323830 + i64.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getInt32 - i32.const 1204680201 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 132 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 660673230 + i32.const 1696 + i32.const 107 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getUint64 + i64.const -657428103485373601 + i64.ne + if i32.const 0 - call $~lib/dataview/DataView#setInt32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1.5976661625240943e-18 + i32.const 1 + call $~lib/dataview/DataView#setFloat32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getFloat32 + f32.const 1.5976661625240943e-18 + f32.ne + if i32.const 0 + i32.const 1696 + i32.const 111 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f32.const 1976281973381696323584 + i32.const 0 + call $~lib/dataview/DataView#setFloat32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getFloat32 + f32.const 1976281973381696323584 + f32.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt32 - i32.const 660673230 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const -3290739641816099749 - i32.const 1 - call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getInt64 - i64.const -3290739641816099749 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 138 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 8178932412950708047 + i32.const 1696 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const -1094252199637739024055454e124 + i32.const 1 + call $~lib/dataview/DataView#setFloat64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getFloat64 + f64.const -1094252199637739024055454e124 + f64.ne + if i32.const 0 - call $~lib/dataview/DataView#setInt64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 117 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + f64.const 6.022586634778589e-103 + i32.const 0 + call $~lib/dataview/DataView#setFloat64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getFloat64 + f64.const 6.022586634778589e-103 + f64.ne + if i32.const 0 - call $~lib/dataview/DataView#getInt64 - i64.const 8178932412950708047 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 141 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1632 + i32.const 109 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 108 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getInt8 + i32.const 108 + i32.ne + if + i32.const 0 + i32.const 1696 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -13360 + i32.const 1 + call $~lib/dataview/DataView#setInt16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 52176 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - i32.eqz - if - i32.const 1360 - i32.const 1632 - i32.const 128 - i32.const 50 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 238 - i32.store8 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 14689 + i32.const 0 + call $~lib/dataview/DataView#setInt16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt16 + i32.const 65535 + i32.and + i32.const 14689 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint8 - i32.const 238 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 144 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 58856 - i32.const 1 - call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1204680201 + i32.const 1 + call $~lib/dataview/DataView#setInt32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getInt32 + i32.const 1204680201 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 58856 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 147 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 60400 + i32.const 1696 + i32.const 132 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 660673230 + i32.const 0 + call $~lib/dataview/DataView#setInt32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getInt32 + i32.const 660673230 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setUint16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const -3290739641816099749 + i32.const 1 + call $~lib/dataview/DataView#setInt64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getInt64 + i64.const -3290739641816099749 + i64.ne + if i32.const 0 + i32.const 1696 + i32.const 138 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 8178932412950708047 + i32.const 0 + call $~lib/dataview/DataView#setInt64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getInt64 + i64.const 8178932412950708047 + i64.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint16 - i32.const 65535 - i32.and - i32.const 60400 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 150 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -846805744 - i32.const 1 - call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 141 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + i32.eqz + if + i32.const 1360 + i32.const 1632 + i32.const 128 + i32.const 50 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 238 + i32.store8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getUint8 + i32.const 238 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/dataview/DataView#getUint32 - i32.const -846805744 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 153 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1510791631 + i32.const 1696 + i32.const 144 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 58856 + i32.const 1 + call $~lib/dataview/DataView#setUint16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 58856 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setUint32 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 147 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 60400 + i32.const 0 + call $~lib/dataview/DataView#setUint16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint16 + i32.const 65535 + i32.and + i32.const 60400 + i32.ne + if i32.const 0 + i32.const 1696 + i32.const 150 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -846805744 + i32.const 1 + call $~lib/dataview/DataView#setUint32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/dataview/DataView#getUint32 + i32.const -846805744 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint32 - i32.const -1510791631 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 156 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const 2334704782995986958 - i32.const 1 - call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - call $~lib/dataview/DataView#getUint64 - i64.const 2334704782995986958 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 159 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i64.const -7123186897289856329 + i32.const 1696 + i32.const 153 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1510791631 + i32.const 0 + call $~lib/dataview/DataView#setUint32 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 0 + call $~lib/dataview/DataView#getUint32 + i32.const -1510791631 + i32.ne + if i32.const 0 - call $~lib/dataview/DataView#setUint64 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1696 + i32.const 156 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const 2334704782995986958 + i32.const 1 + call $~lib/dataview/DataView#setUint64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/dataview/DataView#getUint64 + i64.const 2334704782995986958 + i64.ne + if i32.const 0 - call $~lib/dataview/DataView#getUint64 - i64.const -7123186897289856329 - i64.ne - if - i32.const 0 - i32.const 1696 - i32.const 162 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load - local.tee $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1772 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.const 20 - i32.sub - i32.load offset=16 - local.set $2 - global.get $~lib/memory/__stack_pointer + i32.const 1696 + i32.const 159 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i64.const -7123186897289856329 + i32.const 0 + call $~lib/dataview/DataView#setUint64 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/dataview/DataView#getUint64 + i64.const -7123186897289856329 + i64.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.const 1696 + i32.const 162 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1772 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 20 + i32.sub + i32.load offset=16 + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + local.get $2 + call $~lib/dataview/DataView#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if i32.const 0 - local.get $2 - call $~lib/dataview/DataView#constructor - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1696 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1696 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 34540 - global.set $~lib/memory/__stack_pointer - global.get $~lib/rt/itcms/state + i32.const 1696 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=8 + i32.const 8 + i32.ne + if i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 + i32.const 1696 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 34540 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|0 end end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34560 i32.const 34608 diff --git a/tests/compiler/std/date.debug.wat b/tests/compiler/std/date.debug.wat index ada08405fc..c06e79635e 100644 --- a/tests/compiler/std/date.debug.wat +++ b/tests/compiler/std/date.debug.wat @@ -492,37 +492,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 240 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 240 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -748,22 +746,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -977,27 +973,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -1015,28 +1009,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1361,27 +1353,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1390,37 +1380,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1510,7 +1498,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1579,15 +1566,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1656,15 +1641,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1672,21 +1655,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1694,27 +1675,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1883,39 +1862,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1934,31 +1911,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2909,61 +2884,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 860 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 860 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 860 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 860 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -3040,37 +3013,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1280 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1280 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -3124,44 +3095,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 - local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if + local.get $num + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -3288,24 +3255,22 @@ local.get $count i32.mul local.set $total - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $total + i32.lt_u + if + local.get $dst local.get $index - local.get $total - i32.lt_u - if - local.get $dst - local.get $index - i32.add - local.get $src - local.get $srcLength - memory.copy - local.get $index - local.get $srcLength - i32.add - local.set $index - br $while-continue|0 - end + i32.add + local.get $src + local.get $srcLength + memory.copy + local.get $index + local.get $srcLength + i32.add + local.set $index + br $while-continue|0 end end ) @@ -3468,40 +3433,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -3729,7 +3692,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -3746,27 +3708,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end ) @@ -5167,12 +5127,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 return - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/date/Date#toISOString (param $this i32) (result i32) (local $yr i32) @@ -6670,23 +6624,21 @@ local.get $ptr i32.load16_u local.set $code - block $while-break|0 - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 end end i32.const 1 @@ -7464,104 +7416,102 @@ local.set $start i32.const 0 local.set $i|16 - block $while-break|1 - loop $while-continue|1 - local.get $this - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $separator - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 + loop $while-continue|1 + local.get $this + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $separator + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + local.get $start + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor + if + local.get $end local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor + i32.sub + local.set $len + local.get $len + i32.const 0 + i32.gt_s if - local.get $end - local.get $start - i32.sub - local.set $len + global.get $~lib/memory/__stack_pointer local.get $len - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=28 - local.get $out - local.get $this - local.get $start - i32.const 1 - i32.shl - i32.add - local.get $len - i32.const 1 - i32.shl - memory.copy - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $out - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - i32.const 2432 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $i|16 i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=28 + local.get $out + local.get $this + local.get $start + i32.const 1 + i32.shl i32.add - local.tee $i|16 - local.get $limit - i32.eq - if - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $21 - return - end - local.get $end - local.get $sepLen + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + i32.const 2432 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $i|16 + i32.const 1 + i32.add + local.tee $i|16 + local.get $limit + i32.eq + if + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 i32.add - local.set $start - br $while-continue|1 + global.set $~lib/memory/__stack_pointer + local.get $21 + return end + local.get $end + local.get $sepLen + i32.add + local.set $start + br $while-continue|1 end end local.get $start @@ -13768,27 +13718,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -13913,24 +13861,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -13955,25 +13901,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/std/date.release.wat b/tests/compiler/std/date.release.wat index 2fc2eff478..9dc722dd42 100644 --- a/tests/compiler/std/date.release.wat +++ b/tests/compiler/std/date.release.wat @@ -1433,7 +1433,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1466,7 +1465,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -3673,12 +3671,10 @@ local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toISOString (param $0 i32) (result i32) (local $1 i32) @@ -3704,7 +3700,6 @@ local.get $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $2 local.get $0 i32.load local.tee $1 @@ -3830,7 +3825,6 @@ call $~lib/date/stringify local.set $1 end - local.get $2 local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -4013,12 +4007,10 @@ i32.store offset=4 i32.const 3616 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const -64 i32.sub global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 41264 @@ -4100,12 +4092,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4141,7 +4131,6 @@ i32.const 52 memory.fill global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4149,11 +4138,9 @@ i32.const 4640 i32.const 28 memory.copy - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 48 i32.const 5 call $~lib/rt/itcms/__new @@ -4161,7 +4148,6 @@ i32.const 5072 i32.const 48 memory.copy - local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -4374,12 +4360,10 @@ i32.store offset=48 i32.const 5152 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 52 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toTimeString (param $0 i32) (result i32) (local $1 i32) @@ -4489,12 +4473,10 @@ i32.store offset=28 i32.const 5456 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 32 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/date/Date#toUTCString (param $0 i32) (result i32) (local $1 i32) @@ -4524,7 +4506,6 @@ i32.const 76 memory.fill global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 28 i32.const 5 call $~lib/rt/itcms/__new @@ -4532,11 +4513,9 @@ i32.const 5824 i32.const 28 memory.copy - local.get $1 local.get $2 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 i32.const 48 i32.const 5 call $~lib/rt/itcms/__new @@ -4544,7 +4523,6 @@ i32.const 6256 i32.const 48 memory.copy - local.get $1 local.get $3 i32.store offset=4 global.get $~lib/memory/__stack_pointer @@ -4835,12 +4813,10 @@ i32.store offset=72 i32.const 6368 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#indexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -5114,12 +5090,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/strtol (param $0 i32) (result i32) (local $1 i32) @@ -6010,12 +5984,10 @@ local.get $1 local.get $2 call $~lib/string/String#split - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6041,12 +6013,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -6506,7 +6476,6 @@ call $~lib/util/string/strtol local.set $6 global.get $~lib/memory/__stack_pointer - local.set $9 block $__inlined_func$~lib/string/String#substr$387 (result i32) global.get $~lib/memory/__stack_pointer local.get $2 @@ -6714,7 +6683,6 @@ local.get $2 local.set $0 end - local.get $9 local.get $0 i32.store offset=52 global.get $~lib/memory/__stack_pointer @@ -6764,7 +6732,6 @@ i32.store local.get $1 call $~lib/util/string/strtol - local.set $2 i32.const 1 local.set $1 global.get $~lib/memory/__stack_pointer @@ -6816,7 +6783,6 @@ i32.const 1 end local.set $0 - local.get $2 local.get $1 local.get $0 local.get $3 @@ -6828,12 +6794,10 @@ i64.extend_i32_s i64.sub call $~lib/date/Date#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 76 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 41264 diff --git a/tests/compiler/std/hash.debug.wat b/tests/compiler/std/hash.debug.wat index af731f6d4f..0a04055d0c 100644 --- a/tests/compiler/std/hash.debug.wat +++ b/tests/compiler/std/hash.debug.wat @@ -296,90 +296,88 @@ i32.const 16 i32.sub local.set $end - block $while-break|0 - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.0 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.0 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.1 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.1 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.2 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.2 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.3 (result i32) - local.get $s4 - local.set $h|16 - local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.3 - end - local.set $s4 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 local.get $pos - i32.const 16 + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul i32.add - local.set $pos - br $while-continue|0 + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 end + local.set $s3 + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 + end + local.set $s4 + local.get $pos + i32.const 16 + i32.add + local.set $pos + br $while-continue|0 end end local.get $h @@ -414,62 +412,58 @@ i32.const 4 i32.sub local.set $end|18 - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $pos + local.get $end|18 + i32.le_u + if + local.get $h local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 - end + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 end end local.get $key|1 local.get $len i32.add local.set $end|18 - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $pos + local.get $end|18 + i32.lt_u + if + local.get $h local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h - local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h - local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 - end + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 end end local.get $h @@ -591,90 +585,88 @@ i32.const 16 i32.sub local.set $end - block $while-break|0 - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.4 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.4 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.5 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.5 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.6 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.6 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.7 (result i32) - local.get $s4 - local.set $h|16 - local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.7 - end - local.set $s4 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.4 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.4 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.5 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.5 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.6 (result i32) + local.get $s3 + local.set $h|14 local.get $pos - i32.const 16 + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul i32.add - local.set $pos - br $while-continue|0 + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.6 end + local.set $s3 + block $~lib/util/hash/mix|inlined.7 (result i32) + local.get $s4 + local.set $h|16 + local.get $pos + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.7 + end + local.set $s4 + local.get $pos + i32.const 16 + i32.add + local.set $pos + br $while-continue|0 end end local.get $h @@ -709,62 +701,58 @@ i32.const 4 i32.sub local.set $end|18 - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $pos + local.get $end|18 + i32.le_u + if + local.get $h local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 - end + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 end end local.get $key|1 local.get $len i32.add local.set $end|18 - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $pos + local.get $end|18 + i32.lt_u + if + local.get $h local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h - local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h - local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 - end + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 end end local.get $h diff --git a/tests/compiler/std/map.debug.wat b/tests/compiler/std/map.debug.wat index 63365dae75..0bea8bdde5 100644 --- a/tests/compiler/std/map.debug.wat +++ b/tests/compiler/std/map.debug.wat @@ -123,37 +123,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -379,22 +377,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -608,27 +604,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -646,28 +640,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -992,27 +984,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1021,37 +1011,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1141,7 +1129,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1210,15 +1197,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1287,15 +1272,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1303,21 +1286,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1325,27 +1306,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1514,39 +1493,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1565,31 +1542,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -5194,16 +5169,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -5282,7 +5255,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $"~lib/map/Map~visit" (param $0 i32) (param $1 i32) local.get $0 @@ -5906,45 +5878,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -6065,67 +6035,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -7619,45 +7587,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -7748,67 +7714,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -8107,43 +8071,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -8234,67 +8196,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -9605,47 +9565,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $"~lib/map/MapEntry#get:key" + i32.const 255 i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 - i32.and - local.get $key - i32.const 255 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 255 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -9766,67 +9724,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -10812,47 +10768,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $"~lib/map/MapEntry#get:key" + i32.const 255 i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 255 - i32.and - local.get $key - i32.const 255 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 255 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -10943,67 +10897,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -12289,45 +12241,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -12448,67 +12398,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -13494,45 +13442,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -13623,67 +13569,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -14969,47 +14913,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $"~lib/map/MapEntry#get:key" + i32.const 65535 i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 - i32.and - local.get $key - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 65535 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -15130,67 +15072,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -16176,47 +16116,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $"~lib/map/MapEntry#get:key" + i32.const 65535 i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - i32.const 65535 - i32.and - local.get $key - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 65535 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -16307,67 +16245,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 8 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 8 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -18816,43 +18752,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -18973,67 +18907,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -20019,43 +19951,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -20146,67 +20076,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne - if - local.get $oldPtr - local.set $oldEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 - i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz + if + local.get $newPtr + local.set $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask + i32.and + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -21492,43 +21420,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -21649,67 +21575,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -22696,43 +22620,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -22823,67 +22745,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -24177,43 +24097,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -24334,67 +24252,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -25381,43 +25297,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -25508,67 +25422,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -26862,43 +26774,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -27019,67 +26929,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -28066,43 +27974,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -28193,67 +28099,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -29547,43 +29451,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -29704,67 +29606,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 16 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 16 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -30751,43 +30651,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + f64.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - f64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -30878,67 +30776,65 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 24 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 24 + br $"~lib/map/ENTRY_SIZE|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/map.release.wat b/tests/compiler/std/map.release.wat index d24240e624..01aae0315a 100644 --- a/tests/compiler/std/map.release.wat +++ b/tests/compiler/std/map.release.wat @@ -1063,7 +1063,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1096,7 +1095,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1807,11 +1805,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1916,12 +1912,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -2188,11 +2182,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -2377,12 +2369,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#get:size" (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2408,12 +2398,10 @@ i32.store local.get $0 i32.load offset=20 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -3082,12 +3070,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3133,12 +3119,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) @@ -3155,433 +3139,424 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.extend8_s - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.extend8_s + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1378" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1378" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store8 offset=1 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $4 + i32.load offset=16 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - local.get $3 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1378" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1378" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + i32.load offset=12 + i32.eq if - local.get $3 - local.get $2 - i32.store8 offset=1 - else global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=16 - local.set $3 + i32.store offset=4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 + i32.store offset=4 local.get $0 i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $3 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + i32.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.const 1 + i32.or + end + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $5 + local.get $0 + i32.load offset=16 + i32.const 3 + i32.shl + i32.add + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 + local.get $10 + i32.ne + if local.get $5 - local.get $10 - i32.ne + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if + local.get $3 local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_s - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_s offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end + i32.load8_s + local.tee $11 + i32.store8 + local.get $3 local.get $5 + i32.load8_s offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 i32.const 8 i32.add - local.set $5 - br $while-continue|00 + local.set $3 end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 local.get $0 + local.get $6 i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer + i32.store offset=8 local.get $0 - i32.store + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 + i32.store offset=8 local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + local.get $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 + i32.store offset=12 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 local.get $0 - local.get $3 - i32.store + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34688 i32.const 34736 @@ -3615,11 +3590,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -3930,11 +3903,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -4164,11 +4135,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4286,2943 +4255,895 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 4 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 4 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 12 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $7 - local.get $0 - i32.load offset=16 - i32.const 12 - i32.mul - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 i32.ne if - local.get $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $7 - i32.load8_u - local.tee $8 - i32.store8 - local.get $2 - local.get $7 - i32.load offset=4 - i32.store offset=4 - local.get $2 - local.get $6 - local.get $1 - local.get $8 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $8 - local.get $8 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $8 - local.get $8 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $8 - local.get $8 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $8 - i32.load - i32.store offset=8 - local.get $8 - local.get $2 - i32.store - local.get $2 - i32.const 12 - i32.add - local.set $2 - end - local.get $7 - i32.const 12 - i32.add - local.set $7 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - else global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.load offset=16 - local.set $3 + local.set $6 global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $7 i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 12 - i32.mul - i32.add - local.tee $3 - local.get $1 - i32.store8 - local.get $3 - local.get $2 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 i32.add - local.tee $0 - i32.load - i32.store offset=8 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - (local $10 i32) - (local $11 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + local.get $6 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1383" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load8_u - local.get $1 - i32.const 255 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1383" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 if + local.get $5 local.get $3 - local.get $2 - i32.store8 offset=1 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer + local.get $7 local.get $0 - i32.store offset=4 - local.get $3 + local.get $8 + i32.load8_s + call $~lib/array/Array#__set local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 i32.const 1 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 - i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load8_u - local.tee $11 - i32.store8 - local.get $3 - local.get $5 - i32.load8_u offset=1 - i32.store8 offset=1 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add - local.tee $3 - local.get $1 - i32.store8 local.get $3 - local.get $2 - i32.store8 offset=1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 i32.const 1 i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store + local.set $3 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 255 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761394 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) + local.get $7 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $4 i32.store - local.get $0 - i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 i32.store - local.get $2 - local.get $0 - i32.load offset=12 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 3 - i32.mul + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 4 - i32.div_s - i32.lt_s - else + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 i32.const 0 - end - if + i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (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) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|1 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 10 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 1073741820 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 + i32.const 1568 + i32.const 56 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=4 - i32.add - i32.load8_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34688 i32.const 34736 @@ -7231,85 +5152,7 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $0 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7334,10 +5177,11 @@ local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7362,17 +5206,15 @@ i32.const 16 i32.shr_u i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -7454,9 +5296,9 @@ if local.get $2 local.get $7 - i32.load16_s + i32.load8_u local.tee $8 - i32.store16 + i32.store8 local.get $2 local.get $7 i32.load offset=4 @@ -7467,7 +5309,7 @@ local.get $8 i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7565,7 +5407,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7596,10 +5438,11 @@ local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7625,7 +5468,7 @@ local.get $3 i32.xor local.tee $4 - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -7637,11 +5480,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -7684,7 +5525,7 @@ i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 @@ -7714,7 +5555,7 @@ i32.add local.tee $3 local.get $1 - i32.store16 + i32.store8 local.get $3 local.get $2 i32.store offset=4 @@ -7760,7 +5601,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -7785,10 +5626,11 @@ local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -7813,7 +5655,7 @@ i32.const 16 i32.shr_u i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -7826,119 +5668,12 @@ end local.get $0 i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 - local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 1 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 - i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 1 - i32.shl - i32.add - local.get $2 - i32.store16 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 1 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -7953,433 +5688,425 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.extend16_s - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.const 255 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1383" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load8_u + local.get $1 + i32.const 255 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1383" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end global.get $~lib/memory/__stack_pointer i32.const 4 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i32.store8 offset=1 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load - local.set $4 + i32.load offset=16 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 - local.get $3 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1388" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1388" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 - end - local.get $3 + i32.load offset=12 + i32.eq if - local.get $3 - local.get $2 - i32.store16 offset=2 - else global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=16 - local.set $3 + i32.store offset=4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 + i32.store offset=4 local.get $0 i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $3 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + i32.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_s - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_s offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + i32.or end + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 i32.const 1 i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 3 - i32.shl - i32.add local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load - local.set $1 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 + i32.store offset=8 + local.get $5 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 + i32.load offset=16 + i32.const 3 i32.shl i32.add - local.tee $0 - i32.load - i32.store offset=4 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load8_u + local.tee $11 + i32.store8 + local.get $3 + local.get $5 + i32.load8_u offset=1 + i32.store8 offset=1 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761394 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 + local.get $0 + local.get $6 + i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $9 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store8 + local.get $3 + local.get $2 + i32.store8 offset=1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34688 i32.const 34736 @@ -8388,7 +6115,7 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -8414,10 +6141,11 @@ local.get $0 local.get $1 local.get $1 - i32.extend16_s + i32.const 255 + i32.and i32.const -1028477379 i32.mul - i32.const 374761395 + i32.const 374761394 i32.add i32.const 17 i32.rotl @@ -8442,7 +6170,7 @@ i32.shr_u local.get $1 i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -8499,11 +6227,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8520,14 +6246,14 @@ i32.store local.get $0 local.get $1 - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -8542,931 +6268,919 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 12 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 14 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_s + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 10 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $7 + i32.store + local.get $7 local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $8 + i32.load8_u + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|4 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.add + i32.load8_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer i32.const 0 @@ -9475,18 +7189,92 @@ local.get $0 i32.store local.get $0 - local.get $1 - local.get $1 - i32.const 65535 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 + i32.const 2 + i32.shl i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $0 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul local.tee $0 local.get $0 i32.const 15 @@ -9509,14 +7297,12 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -9598,7 +7384,7 @@ if local.get $2 local.get $7 - i32.load16_u + i32.load16_s local.tee $8 i32.store16 local.get $2 @@ -9709,7 +7495,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9740,8 +7526,7 @@ local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -9782,11 +7567,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -9829,7 +7612,7 @@ i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 @@ -9905,7 +7688,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -9930,8 +7713,7 @@ local.get $0 local.get $1 local.get $1 - i32.const 65535 - i32.and + i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -9972,14 +7754,117 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 1 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 1 + i32.shl + i32.add + local.get $2 + i32.store16 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 1 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -9994,470 +7879,459 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 65535 - i32.and - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $8 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $4 - local.get $3 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1393" - loop $while-continue|0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.extend16_s + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1388" + loop $while-continue|0 + local.get $3 + if local.get $3 - if + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else local.get $3 - i32.load offset=4 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $3 - i32.load16_u - local.get $1 - i32.const 65535 - i32.and - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1393" - end - local.get $4 - i32.const -2 + i32.load16_u + local.get $1 + i32.const 65535 i32.and - local.set $3 - br $while-continue|0 + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1388" end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if local.get $3 + local.get $2 + i32.store16 offset=2 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq if - local.get $3 - local.get $2 - i32.store16 offset=2 - else global.get $~lib/memory/__stack_pointer local.get $0 i32.store + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=16 - local.set $3 + i32.store offset=4 + local.get $0 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 + i32.store offset=4 local.get $0 i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - i32.load offset=20 - local.set $3 + i32.load offset=4 + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 + i32.load offset=4 i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $9 - i32.const 3 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $5 - local.get $0 - i32.load offset=16 - i32.const 3 i32.shl - i32.add - local.set $10 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $5 - local.get $10 - i32.ne - if - local.get $5 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $5 - i32.load16_u - local.tee $11 - i32.store16 - local.get $3 - local.get $5 - i32.load16_u offset=2 - i32.store16 offset=2 - local.get $3 - local.get $6 - local.get $7 - local.get $11 - i32.const -1028477379 - i32.mul - i32.const 374761395 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $11 - local.get $11 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $11 - local.get $11 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $11 - local.get $11 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $11 - i32.load - i32.store offset=4 - local.get $11 - local.get $3 - i32.store - local.get $3 - i32.const 8 - i32.add - local.set $3 - end - local.get $5 - i32.const 8 - i32.add - local.set $5 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=12 - local.get $0 - local.get $6 - i32.store - local.get $0 - local.get $6 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $9 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 1 + i32.or end + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $9 + i32.const 3 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.tee $3 i32.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=4 - local.get $0 + i32.store offset=8 + local.get $5 local.get $0 i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 i32.const 3 i32.shl i32.add - local.tee $3 - local.get $1 - i32.store16 - local.get $3 - local.get $2 - i32.store16 offset=2 + local.set $10 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $5 + local.get $10 + i32.ne + if + local.get $5 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $5 + i32.load16_s + local.tee $11 + i32.store16 + local.get $3 + local.get $5 + i32.load16_s offset=2 + i32.store16 offset=2 + local.get $3 + local.get $6 + local.get $7 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=4 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 8 + i32.add + local.set $3 + end + local.get $5 + i32.const 8 + i32.add + local.set $5 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 local.get $0 + local.get $6 i32.store + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 local.get $0 + local.get $4 + i32.store offset=8 local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 + local.get $4 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.load - local.set $1 + local.get $9 + i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $3 - local.get $1 - local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=4 + i32.store offset=12 local.get $0 - local.get $3 - i32.store + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - return - end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const 65535 - i32.and + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 3 + i32.shl + i32.add + local.tee $3 + local.get $1 + i32.store16 + local.get $3 + local.get $2 + i32.store16 offset=2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=4 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.extend16_s i32.const -1028477379 i32.mul i32.const 374761395 @@ -10542,11 +8416,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -10563,14 +8435,14 @@ i32.store local.get $0 local.get $1 - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -10585,1357 +8457,632 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 12 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 16 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 536870910 - i32.gt_u if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 32 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=4 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $1 - i32.const 15 - i32.shr_u - local.get $1 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $1 - i32.const 13 - i32.shr_u - local.get $1 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $1 - i32.const 16 - i32.shr_u - local.get $1 - i32.xor - call $"~lib/map/Map#find" - local.tee $1 - i32.eqz - if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $1 - local.get $1 - i32.load offset=8 - i32.const 1 - i32.or - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $2 - local.get $2 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $2 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer - local.get $0 + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $2 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if + local.get $1 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $0 local.get $1 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner0 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 i32.const 0 - i32.const 24 - memory.fill + i32.store offset=4 global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $1 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 i32.lt_s if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 + local.get $5 + local.get $3 + i32.const 12 + i32.mul i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and i32.eqz if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 end - local.get $0 + local.get $3 i32.const 1 i32.add - local.set $0 - br $for-loop|0 + local.set $3 + br $for-loop|00 end end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer i32.const 0 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 14 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $2 + local.get $7 + i32.load offset=12 + i32.ge_u if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + i32.load16_s + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 local.get $0 + i32.store offset=4 local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" + local.get $2 + call $~lib/array/Array#__get + local.set $6 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#has" + local.get $5 + call $"~lib/map/Map#has" i32.eqz if i32.const 0 i32.const 1568 - i32.const 18 + i32.const 31 i32.const 5 call $~lib/builtins/abort unreachable @@ -11944,241 +9091,62 @@ local.get $1 i32.store offset=4 local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 + local.get $6 i32.const 20 - i32.add - i32.ne + i32.sub + call $"~lib/map/Map#has" + i32.eqz if i32.const 0 i32.const 1568 - i32.const 19 + i32.const 32 i32.const 5 call $~lib/builtins/abort unreachable end - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 i32.const 1 i32.add - local.set $0 - br $for-loop|1 + local.set $2 + br $for-loop|2 end end global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $4 i32.store offset=4 - local.get $1 + local.get $4 call $"~lib/map/Map#get:size" i32.const 100 i32.ne if i32.const 0 i32.const 1568 - i32.const 21 + i32.const 36 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $3 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner0 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.load offset=16 - local.tee $6 - call $~lib/array/Array#constructor - local.tee $2 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $3 - local.get $6 - i32.lt_s - if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $7 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $6 - local.get $6 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $7 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 - end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 + local.get $3 call $"~lib/map/Map#get:size" i32.const 100 i32.ne @@ -12202,7 +9170,7 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12217,7 +9185,7 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#get" + call $"~lib/map/Map#get" local.get $0 i32.const 20 i32.add @@ -12235,13 +9203,13 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12284,7 +9252,7 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12301,13 +9269,13 @@ local.get $0 i32.const 10 i32.add - call $"~lib/map/Map#set" + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" i32.eqz if i32.const 0 @@ -12322,13 +9290,13 @@ i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#delete" + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 local.get $0 - call $"~lib/map/Map#has" + call $"~lib/map/Map#has" if i32.const 0 i32.const 1568 @@ -12390,8 +9358,7 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) - (local $3 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12414,121 +9381,46 @@ local.get $0 i32.store local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer + local.get $1 + local.get $1 + i32.const 65535 + i32.and + i32.const -1028477379 + i32.mul + i32.const 374761395 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 local.get $0 - i32.store - local.get $3 - local.get $2 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=8 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i32.load - i32.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.const -1028477379 - i32.mul - i32.const 374761397 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - local.get $0 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - local.get $0 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - local.get $0 - i32.const 16 - i32.shr_u - i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) (local $3 i32) (local $4 i32) @@ -12610,9 +9502,9 @@ if local.get $2 local.get $7 - i32.load + i32.load16_u local.tee $8 - i32.store + i32.store16 local.get $2 local.get $7 i32.load offset=4 @@ -12623,7 +9515,7 @@ local.get $8 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -12721,7 +9613,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -12752,9 +9644,11 @@ local.get $0 local.get $1 local.get $1 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -12780,7 +9674,7 @@ local.get $3 i32.xor local.tee $4 - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $3 if local.get $3 @@ -12792,11 +9686,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -12839,7 +9731,7 @@ i32.const 1 i32.or end - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer local.get $0 @@ -12869,7 +9761,7 @@ i32.add local.tee $3 local.get $1 - i32.store + i32.store16 local.get $3 local.get $2 i32.store offset=4 @@ -12915,7 +9807,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -12940,9 +9832,11 @@ local.get $0 local.get $1 local.get $1 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -12967,7 +9861,7 @@ i32.const 16 i32.shr_u i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $0 i32.eqz if @@ -12980,14 +9874,12 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) @@ -13001,11 +9893,11 @@ i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner0 + block $folding-inner1 global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -13015,12 +9907,12 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $0 - local.get $1 local.get $1 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -13045,24 +9937,90 @@ i32.shr_u local.get $3 i32.xor - local.tee $7 - call $"~lib/map/Map#find" - local.tee $3 + local.tee $8 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1393" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=4 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $3 + i32.load16_u + local.get $1 + i32.const 65535 + i32.and + i32.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1393" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 if local.get $3 local.get $2 - i32.store offset=4 + i32.store16 offset=2 else global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -13075,11 +10033,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13104,7 +10060,7 @@ i32.const 1 i32.or end - local.set $8 + local.set $7 global.get $~lib/memory/__stack_pointer i32.const 16 i32.sub @@ -13112,7 +10068,7 @@ global.get $~lib/memory/__stack_pointer i32.const 1896 i32.lt_s - br_if $folding-inner0 + br_if $folding-inner1 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -13120,14 +10076,14 @@ i64.const 0 i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $7 i32.const 1 i32.add local.tee $3 i32.const 2 i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $9 + local.tee $6 i32.store global.get $~lib/memory/__stack_pointer local.get $3 @@ -13135,9 +10091,9 @@ i32.shl i32.const 3 i32.div_s - local.tee $6 - i32.const 12 - i32.mul + local.tee $9 + i32.const 3 + i32.shl call $~lib/arraybuffer/ArrayBuffer#constructor local.tee $4 i32.store offset=4 @@ -13146,46 +10102,46 @@ i32.store offset=8 local.get $0 i32.load offset=8 - local.set $10 + local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 - local.get $10 + local.get $5 local.get $0 i32.load offset=16 - i32.const 12 - i32.mul + i32.const 3 + i32.shl i32.add - local.set $5 + local.set $10 local.get $4 local.set $3 - loop $while-continue|0 + loop $while-continue|00 local.get $5 local.get $10 i32.ne if - local.get $10 - i32.load offset=8 + local.get $5 + i32.load offset=4 i32.const 1 i32.and i32.eqz if local.get $3 - local.get $10 - i32.load + local.get $5 + i32.load16_u local.tee $11 - i32.store + i32.store16 local.get $3 - local.get $10 - i32.load offset=4 - i32.store offset=4 + local.get $5 + i32.load16_u offset=2 + i32.store16 offset=2 local.get $3 - local.get $9 - local.get $8 + local.get $6 + local.get $7 local.get $11 i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -13216,39 +10172,39 @@ i32.add local.tee $11 i32.load - i32.store offset=8 + i32.store offset=4 local.get $11 local.get $3 i32.store local.get $3 - i32.const 12 + i32.const 8 i32.add local.set $3 end - local.get $10 - i32.const 12 + local.get $5 + i32.const 8 i32.add - local.set $10 - br $while-continue|0 + local.set $5 + br $while-continue|00 end end global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $9 + local.get $6 i32.store offset=12 local.get $0 - local.get $9 + local.get $6 i32.store local.get $0 - local.get $9 + local.get $6 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 local.get $0 - local.get $8 + local.get $7 i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13266,7 +10222,7 @@ local.get $0 i32.store offset=8 local.get $0 - local.get $6 + local.get $9 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 @@ -13306,15 +10262,15 @@ i32.store offset=16 local.get $3 local.get $4 - i32.const 12 - i32.mul + i32.const 3 + i32.shl i32.add local.tee $3 local.get $1 - i32.store + i32.store16 local.get $3 local.get $2 - i32.store offset=4 + i32.store16 offset=2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -13338,7 +10294,7 @@ i32.store local.get $3 local.get $1 - local.get $7 + local.get $8 local.get $0 i32.load offset=4 i32.and @@ -13347,7 +10303,7 @@ i32.add local.tee $0 i32.load - i32.store offset=8 + i32.store offset=4 local.get $0 local.get $3 i32.store @@ -13365,7 +10321,7 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) global.get $~lib/memory/__stack_pointer i32.const 8 @@ -13391,9 +10347,11 @@ local.get $0 local.get $1 local.get $1 + i32.const 65535 + i32.and i32.const -1028477379 i32.mul - i32.const 374761397 + i32.const 374761395 i32.add i32.const 17 i32.rotl @@ -13418,7 +10376,7 @@ i32.shr_u local.get $1 i32.xor - call $"~lib/map/Map#find" + call $"~lib/map/Map#find" local.tee $1 i32.eqz if @@ -13475,11 +10433,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -13496,14 +10452,14 @@ i32.store local.get $0 local.get $1 - call $"~lib/map/Map#rehash" + call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" + (func $"std/map/testNumeric" (local $0 i32) (local $1 i32) (local $2 i32) @@ -13518,993 +10474,908 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 18 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store - local.get $7 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 16 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 + i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 local.get $6 - i32.const 268435455 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=12 - local.get $7 - local.get $8 - i32.store - local.get $7 - local.get $8 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + local.get $5 local.get $3 - local.get $6 - i32.lt_s + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $5 - local.get $3 - i32.const 12 - i32.mul - i32.add - local.tee $8 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - local.get $0 - local.get $8 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 32 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $7 - i32.store - local.get $7 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 20 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - i32.const 48 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $3 - i32.store offset=20 - loop $for-loop|2 + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if global.get $~lib/memory/__stack_pointer local.get $7 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer local.get $7 - call $~lib/array/Array#get:length + i32.store local.get $2 - i32.gt_s + local.get $7 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $2 - local.get $7 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store - local.get $7 - i32.load offset=4 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $2 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $5 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $5 - local.get $5 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - local.get $6 - i32.const 20 - i32.sub - local.tee $5 - local.get $5 - call $"~lib/map/Map#set" - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=4 - local.get $3 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer local.get $0 - i32.const 50 - i32.lt_u + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#get" - local.get $0 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|4 - local.get $0 - i32.const 50 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - local.get $0 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 local.get $0 - i64.load - i64.eq - end - if + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 4 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 i32.add - global.set $~lib/memory/__stack_pointer + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - return + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -14529,66 +11400,115 @@ local.get $0 local.get $1 local.get $1 - i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761401 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 i32.const -1028477379 i32.mul + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $0 i32.xor i32.const -2048144777 i32.mul local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $0 i32.xor i32.const -1028477379 i32.mul local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $0 i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -14606,1139 +11526,819 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 local.get $1 - i32.const 1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $1 + i32.const 15 + i32.shr_u + local.get $1 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $1 + i32.const 13 + i32.shr_u + local.get $1 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $1 + i32.const 16 + i32.shr_u + local.get $1 + i32.xor + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $1 + local.get $1 + i32.load offset=8 + i32.const 1 + i32.or + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 + i32.store offset=4 local.get $0 - i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 local.get $0 - local.get $7 i32.store local.get $0 - local.get $7 - call $~lib/rt/itcms/__link + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 + i32.store local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 - local.get $0 - local.get $3 - i32.store offset=8 - local.get $0 - local.get $3 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 + i32.const 1 + i32.add + i32.const 4 local.get $0 i32.load offset=20 - i32.store offset=16 + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + call $"~lib/map/Map#rehash" + end global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) + (local $6 i32) + (local $7 i32) global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 24 i32.sub global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else + block $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 + i32.const 1896 + i32.lt_s + br_if $folding-inner0 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $1 i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 + loop $for-loop|0 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + i32.const 100 i32.lt_s - if (result i32) + if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=4 - else + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=4 i32.const 1 - i32.shl + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 i32.const 1 - i32.or + i32.add + local.set $0 + br $for-loop|1 end - call $"~lib/map/Map#rehash" end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 i32.load offset=8 - local.tee $3 - i32.store offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 + local.get $1 i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.tee $6 + call $~lib/array/Array#constructor + local.tee $2 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $2 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 + i32.lt_s + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + local.get $0 + local.get $7 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $2 i32.store - local.get $3 local.get $2 - local.get $4 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $1 - local.get $0 - i32.load offset=12 - i32.ge_u - if - local.get $1 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $0 + global.set $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $3 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $3 + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 i32.store offset=12 - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - local.get $1 - i32.const 3 - i32.shl - i32.add - local.get $2 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $0 - local.get $1 - i32.const 3 - i32.const 0 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#values" (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=16 - local.tee $0 - call $~lib/array/Array#constructor - local.tee $5 - i32.store offset=4 - loop $for-loop|0 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $3 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.store offset=4 + local.get $2 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s if global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 + local.get $2 + i32.store offset=4 + local.get $2 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $7 + global.get $~lib/memory/__stack_pointer local.get $1 - local.get $4 - i32.load offset=8 - call $~lib/array/Array#__set + i32.store offset=4 + local.get $1 + local.get $6 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 local.get $1 + local.get $7 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $6 + local.get $6 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $7 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 i32.const 1 i32.add - local.set $1 + local.set $3 + br $for-loop|2 end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0 end - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1403" - loop $while-continue|0 - local.get $3 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1403" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $3 end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne if - local.get $3 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 local.get $0 - i32.load offset=12 - i32.eq + i32.const 50 + i32.lt_s if global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $5 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 - i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=8 - local.set $11 - global.get $~lib/memory/__stack_pointer + local.get $1 local.get $0 - i32.store offset=8 - local.get $11 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + i32.const 1 i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $9 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end - end - global.get $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i32) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=8 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 local.get $0 - i32.store offset=8 + i32.load + i32.eq + end + if global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer local.get $0 - local.get $10 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 - local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 + i32.const -2 i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store + local.set $0 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 4 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15753,142 +12353,59 @@ unreachable end global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.const 0 + i32.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 i32.const -1028477379 i32.mul + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.tee $2 + local.tee $0 + local.get $0 i32.const 15 i32.shr_u - local.get $2 i32.xor i32.const -2048144777 i32.mul - local.tee $2 + local.tee $0 + local.get $0 i32.const 13 i32.shr_u - local.get $2 i32.xor i32.const -1028477379 i32.mul - local.tee $2 + local.tee $0 + local.get $0 i32.const 16 i32.shr_u - local.get $2 i32.xor - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 + call $"~lib/map/Map#find" + i32.const 0 + i32.ne global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - else - i32.const 0 - end - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"~lib/map/Map#clear" (param $0 i32) - (local $1 i32) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -15906,990 +12423,800 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 - i32.store + i32.store offset=8 local.get $0 - local.get $1 - call $~lib/rt/itcms/__link + i32.load offset=8 + local.set $7 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 + local.get $7 local.get $0 - i32.const 3 - i32.store offset=4 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $7 + i32.ne + if + local.get $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $7 + i32.load + local.tee $8 + i32.store + local.get $2 + local.get $7 + i32.load offset=4 + i32.store offset=4 + local.get $2 + local.get $6 + local.get $1 + local.get $8 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $8 + local.get $8 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $8 + local.get $8 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $8 + local.get $8 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $8 + i32.load + i32.store offset=8 + local.get $8 + local.get $2 + i32.store + local.get $2 + i32.const 12 + i32.add + local.set $2 + end + local.get $7 + i32.const 12 + i32.add + local.set $7 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=12 local.get $0 + local.get $6 i32.store - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $1 + local.get $0 + local.get $6 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer local.get $0 - local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 i32.store offset=8 local.get $0 - local.get $1 + local.get $3 call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=8 local.get $0 - i32.const 4 + local.get $5 i32.store offset=12 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store - local.get $0 - i32.const 0 - i32.store offset=16 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store + i32.store offset=12 local.get $0 - i32.const 0 - i32.store offset=20 + local.get $0 + i32.load offset=20 + i32.store offset=16 global.get $~lib/memory/__stack_pointer - i32.const 8 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i64) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) (local $3 i32) (local $4 i32) (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill + local.get $0 + i32.store global.get $~lib/memory/__stack_pointer - local.set $4 + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $0 i32.store offset=4 - local.get $1 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + i32.mul i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|1 - local.get $2 - i64.const 100 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.div_s i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 22 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $1 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + local.get $0 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + local.get $0 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + local.get $0 + i32.const 16 + i32.shr_u + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i32) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + (local $10 i32) + (local $11 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner0 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $7 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 i32.store offset=4 + else global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 + local.get $0 + i32.store + local.get $0 + i32.load offset=16 global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $8 - local.get $4 - i32.store - local.get $8 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $4 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|00 - end - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $4 i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 + local.get $0 + i32.load offset=12 + i32.eq + if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $8 - call $~lib/array/Array#get:length - local.get $3 - i32.gt_s - if + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $3 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 + local.get $0 i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + else global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner0 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $9 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $6 + i32.const 12 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $10 + local.get $0 + i32.load offset=16 + i32.const 12 + i32.mul + i32.add + local.set $5 + local.get $4 + local.set $3 + loop $while-continue|0 + local.get $5 + local.get $10 + i32.ne if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $10 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $10 + i32.load + local.tee $11 + i32.store + local.get $3 + local.get $10 + i32.load offset=4 + i32.store offset=4 + local.get $3 + local.get $9 + local.get $8 + local.get $11 + i32.const -1028477379 + i32.mul + i32.const 374761397 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $11 + local.get $11 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $11 + local.get $11 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $11 + local.get $11 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $11 + i32.load + i32.store offset=8 + local.get $11 + local.get $3 + i32.store + local.get $3 + i32.const 12 + i32.add + local.set $3 + end + local.get $10 + i32.const 12 + i32.add + local.set $10 + br $while-continue|0 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=12 + local.get $0 + local.get $9 + i32.store + local.get $0 + local.get $9 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer end global.get $~lib/memory/__stack_pointer - local.get $4 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + i32.const 12 + i32.mul + i32.add + local.tee $3 + local.get $1 + i32.store + local.get $3 + local.get $2 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $5 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 - local.get $2 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 - local.get $2 - i64.const 50 - i64.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" + local.get $0 + i32.store + local.get $0 + i32.load + local.set $1 global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 + local.get $7 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - return + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $3 + i32.store end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34688 i32.const 34736 @@ -16898,85 +13225,10 @@ call $~lib/builtins/abort unreachable ) - (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $0 - loop $while-continue|0 - local.get $0 - if - local.get $0 - i32.load offset=12 - local.tee $2 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $0 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - return - end - local.get $2 - i32.const -2 - i32.and - local.set $0 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - ) - (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i32) + (local $2 i32) global.get $~lib/memory/__stack_pointer - i32.const 4 + i32.const 8 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer @@ -16991,2103 +13243,5650 @@ unreachable end global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 local.get $1 local.get $1 - i32.wrap_i64 i32.const -1028477379 i32.mul - i32.const 374761401 + i32.const 374761397 i32.add i32.const 17 i32.rotl i32.const 668265263 i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 + local.tee $1 i32.const 15 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -2048144777 i32.mul - local.tee $0 + local.tee $1 i32.const 13 i32.shr_u - local.get $0 + local.get $1 i32.xor i32.const -1028477379 i32.mul - local.tee $0 + local.tee $1 i32.const 16 i32.shr_u - local.get $0 + local.get $1 i32.xor - call $"~lib/map/Map#find" - i32.const 0 - i32.ne - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i64) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s + call $"~lib/map/Map#find" + local.tee $1 + i32.eqz if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.const 1 - i32.add - local.tee $2 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $7 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $5 - i32.const 4 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 + local.get $1 i32.load offset=8 - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $8 - local.get $0 - i32.load offset=16 - i32.const 4 - i32.shl - i32.add - local.set $4 - local.get $3 - local.set $2 - loop $while-continue|0 - local.get $4 - local.get $8 - i32.ne - if - local.get $8 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - local.get $2 - local.get $8 - i64.load - local.tee $6 - i64.store - local.get $2 - local.get $8 - i32.load offset=8 - i32.store offset=8 - local.get $2 - local.get $7 - local.get $1 - local.get $6 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $6 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $9 - i32.const 15 - i32.shr_u - local.get $9 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $9 - i32.const 13 - i32.shr_u - local.get $9 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $9 - i32.const 16 - i32.shr_u - local.get $9 - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $9 - i32.load - i32.store offset=12 - local.get $9 - local.get $2 - i32.store - local.get $2 - i32.const 16 - i32.add - local.set $2 - end - local.get $8 - i32.const 16 - i32.add - local.set $8 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1 + i32.or i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 local.get $0 - local.get $7 i32.store - local.get $0 - local.get $7 - call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=12 local.get $0 - local.get $3 - i32.store offset=8 local.get $0 - local.get $3 - call $~lib/rt/itcms/__link + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer + i32.store local.get $0 - i32.store offset=8 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 - i32.store offset=12 - local.get $0 + i32.store + local.get $1 + i32.const 1 + i32.add + i32.const 4 local.get $0 i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) - (local $3 i32) - (local $4 i32) - (local $5 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - i32.const 15 - i32.shr_u - local.get $3 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - i32.const 13 - i32.shr_u - local.get $3 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - i32.const 16 - i32.shr_u - local.get $3 - i32.xor - local.tee $4 - call $"~lib/map/Map#find" - local.tee $3 - if - local.get $3 - local.get $2 - i32.store offset=8 - else + local.tee $2 + local.get $2 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 - i32.load offset=16 - local.set $3 + i32.load offset=20 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 - i32.eq - if - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=20 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or - end - call $"~lib/map/Map#rehash" - end + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if global.get $~lib/memory/__stack_pointer local.get $0 i32.store - global.get $~lib/memory/__stack_pointer local.get $0 - i32.load offset=8 - local.tee $3 + local.get $1 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (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) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 24 + i32.const 18 + call $~lib/rt/itcms/__new + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $5 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer local.get $5 - i32.const 4 - i32.shl - i32.add - local.tee $3 + i32.store offset=8 local.get $1 - i64.store - local.get $3 - local.get $2 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 i32.store offset=20 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 - i32.load - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $2 - local.get $4 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=12 - local.get $0 - local.get $3 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $0 - i32.const 15 - i32.shr_u - local.get $0 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $0 - i32.const 13 - i32.shr_u - local.get $0 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $0 - i32.const 16 - i32.shr_u - local.get $0 - i32.xor - call $"~lib/map/Map#find" - local.tee $0 - i32.eqz - if - i32.const 1616 - i32.const 1680 - i32.const 105 - i32.const 17 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load offset=8 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - ) - (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i64) - (local $10 i32) - (local $11 i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $3 + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 + end + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul + i32.store offset=4 local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $3 - local.get $3 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $3 - local.get $3 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $3 - local.get $3 - i32.const 16 - i32.shr_u - i32.xor - local.tee $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - local.set $3 - block $"__inlined_func$~lib/map/Map#find$1408" - loop $while-continue|0 - local.get $3 - if - local.get $3 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.and - if (result i32) - i32.const 0 - else - local.get $1 - local.get $3 - i64.load - i64.eq - end - if - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$~lib/map/Map#find$1408" - end - local.get $4 - i32.const -2 - i32.and - local.set $3 - br $while-continue|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - local.set $3 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.get $3 - if - local.get $3 - local.get $2 - i64.store offset=8 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 + i32.const 0 + local.set $0 + loop $for-loop|1 local.get $0 - i32.load offset=12 - i32.eq + i32.const 100 + i32.lt_u if global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 local.get $0 - i32.load offset=20 - local.set $3 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $3 + local.get $1 local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s - i32.lt_s - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - else - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shl - i32.const 1 - i32.or + call $"~lib/map/Map#get" + local.get $0 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $5 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 20 i32.add - local.tee $3 - i32.const 2 - i32.shl - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $10 - i32.store + call $"~lib/map/Map#set" global.get $~lib/memory/__stack_pointer - local.get $3 - i32.const 3 - i32.shl - i32.const 3 - i32.div_s - local.tee $7 - i32.const 24 - i32.mul - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $4 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 + local.get $1 local.get $0 - i32.load offset=8 - local.set $11 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.store offset=8 - local.get $11 + call $"~lib/map/Map#get" local.get $0 - i32.load offset=16 - i32.const 24 - i32.mul + i32.const 20 i32.add - local.set $6 - local.get $4 - local.set $3 - loop $while-continue|00 - local.get $6 - local.get $11 - i32.ne - if - local.get $11 - i32.load offset=16 - i32.const 1 - i32.and - i32.eqz - if - local.get $3 - local.get $11 - i64.load - local.tee $9 - i64.store - local.get $3 - local.get $11 - i64.load offset=8 - i64.store offset=8 - local.get $3 - local.get $10 - local.get $5 - local.get $9 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $9 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $12 - local.get $12 - i32.const 15 - i32.shr_u - i32.xor - i32.const -2048144777 - i32.mul - local.tee $12 - local.get $12 - i32.const 13 - i32.shr_u - i32.xor - i32.const -1028477379 - i32.mul - local.tee $12 - local.get $12 - i32.const 16 - i32.shr_u - i32.xor - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $12 - i32.load - i32.store offset=16 - local.get $12 - local.get $3 - i32.store - local.get $3 - i32.const 24 - i32.add - local.set $3 - end - local.get $11 - i32.const 24 - i32.add - local.set $11 - br $while-continue|00 - end + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=12 - local.get $0 - local.get $10 - i32.store - local.get $0 - local.get $10 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $5 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $0 - local.get $4 - i32.store offset=8 local.get $0 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - local.get $7 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - local.get $0 - i32.load offset=20 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 16 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.load offset=8 - local.tee $3 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=16 - local.tee $4 - i32.const 1 - i32.add - i32.store offset=16 - local.get $3 - local.get $4 - i32.const 24 - i32.mul - i32.add - local.tee $3 - local.get $1 - i64.store - local.get $3 - local.get $2 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.add - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $3 - local.get $4 - local.get $8 - local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load - i32.store offset=16 - local.get $0 - local.get $3 - i32.store end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - return - end - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - ) - (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) - (local $2 i32) - (local $3 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - if - i32.const 34688 - i32.const 34736 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - local.get $1 - local.get $1 - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.const 374761401 - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.get $1 - i64.const 32 - i64.shr_u - i32.wrap_i64 - i32.const -1028477379 - i32.mul - i32.add - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.tee $2 - i32.const 15 - i32.shr_u - local.get $2 - i32.xor - i32.const -2048144777 - i32.mul - local.tee $2 - i32.const 13 - i32.shr_u - local.get $2 - i32.xor - i32.const -1028477379 - i32.mul - local.tee $2 - i32.const 16 - i32.shr_u - local.get $2 - i32.xor - call $"~lib/map/Map#find" - local.tee $2 - i32.eqz - if + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer i32.const 8 - i32.add + i32.sub global.set $~lib/memory/__stack_pointer - return - end - local.get $2 - local.get $2 - i32.load offset=12 - i32.const 1 - i32.or - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $0 - i32.load offset=20 - i32.const 1 - i32.sub - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=4 - i32.const 1 - i32.shr_u - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $2 - i32.const 1 - i32.add - i32.const 4 - local.get $0 - i32.load offset=20 - local.tee $3 - local.get $3 - i32.const 4 - i32.lt_u - select - i32.ge_u - if (result i32) global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store - local.get $0 - i32.load offset=20 - local.set $3 + local.get $1 + i32.load offset=8 + local.set $5 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store - local.get $3 - local.get $0 - i32.load offset=12 - i32.const 3 - i32.mul - i32.const 4 - i32.div_s + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 i32.lt_s - else + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 i32.const 0 - end - if + i32.store + local.get $7 + i32.const 0 + call $~lib/rt/itcms/__link global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=12 + local.get $7 + local.get $8 i32.store + local.get $7 + local.get $8 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 local.get $0 - local.get $2 - call $"~lib/map/Map#rehash" - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $"std/map/testNumeric" - (local $0 i32) - (local $1 i32) - (local $2 i64) - (local $3 i32) - (local $4 i32) - (local $5 i32) - (local $6 i32) - (local $7 i32) - (local $8 i32) - (local $9 i32) - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $3 + local.get $6 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 24 - call $~lib/rt/itcms/__new - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 64 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - i32.store offset=8 - local.get $1 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $1 - i32.store - loop $for-loop|0 - local.get $2 - i64.const 100 - i64.lt_u + if + local.get $5 + local.get $3 + i32.const 12 + i32.mul + i32.add + local.tee $8 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 + local.get $7 + i32.store + local.get $7 + local.get $0 + local.get $8 + i32.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 9 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 + local.set $0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 20 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 48 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $3 + i32.store offset=20 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $7 i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne + local.get $7 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 1568 - i32.const 11 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store local.get $2 - i64.const 100 - i64.lt_u + local.get $7 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 15 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 19 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store + local.get $7 + i32.load offset=4 + local.get $2 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $2 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $5 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $5 + local.get $5 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + local.get $6 + i32.const 20 + i32.sub + local.tee $5 + local.get $5 + call $"~lib/map/Map#set" + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $7 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 25 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=4 + local.get $3 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 - local.get $7 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $7 - local.get $7 - i32.const 8 - i32.le_u - select + i32.const 1568 + i32.const 37 i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=12 - local.get $8 - local.get $4 - i32.store - local.get $8 - local.get $4 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $4 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#get" + local.get $0 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + local.get $0 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $7 + local.get $1 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#__set (param $0 i32) (param $1 i32) (param $2 i64) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + local.get $0 + i32.load offset=12 + i32.ge_u + if + local.get $1 + i32.const 0 + i32.lt_s + if + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable + end + local.get $0 + local.get $1 + i32.const 1 + i32.add + local.tee $3 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $3 + i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + local.get $1 + i32.const 3 + i32.shl + i32.add + local.get $2 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/array/Array#set:length (param $0 i32) (param $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $0 + local.get $1 + i32.const 3 + i32.const 0 + call $~lib/array/ensureCapacity + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#values" (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=16 + local.tee $0 + call $~lib/array/Array#constructor + local.tee $5 + i32.store offset=4 + loop $for-loop|0 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $3 + local.get $2 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + local.get $4 + i32.load offset=8 + call $~lib/array/Array#__set + local.get $1 + i32.const 1 + i32.add + local.set $1 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1403" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1403" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $9 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 + local.get $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#clear" (param $0 i32) + (local $1 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $0 + local.get $1 + i32.store offset=8 + local.get $0 + local.get $1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 22 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $8 + local.get $4 + i32.store + local.get $8 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + i32.load offset=4 + local.get $3 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#find" (param $0 i32) (param $1 i64) (param $2 i32) (result i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $0 + loop $while-continue|0 + local.get $0 + if + local.get $0 + i32.load offset=12 + local.tee $2 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $0 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $0 + return + end + local.get $2 + i32.const -2 + i32.and + local.set $0 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + ) + (func $"~lib/map/Map#has" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + i32.const 0 + i32.ne + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i64) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 1 + i32.add + local.tee $2 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $7 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $5 + i32.const 4 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $8 + local.get $0 + i32.load offset=16 + i32.const 4 + i32.shl + i32.add + local.set $4 + local.get $3 + local.set $2 + loop $while-continue|0 + local.get $4 + local.get $8 + i32.ne + if + local.get $8 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + local.get $2 + local.get $8 + i64.load + local.tee $6 + i64.store + local.get $2 + local.get $8 + i32.load offset=8 + i32.store offset=8 + local.get $2 + local.get $7 + local.get $1 + local.get $6 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $6 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $9 + i32.const 15 + i32.shr_u + local.get $9 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $9 + i32.const 13 + i32.shr_u + local.get $9 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $9 + i32.const 16 + i32.shr_u + local.get $9 + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $9 + i32.load + i32.store offset=12 + local.get $9 + local.get $2 + i32.store + local.get $2 + i32.const 16 + i32.add + local.set $2 + end + local.get $8 + i32.const 16 + i32.add + local.set $8 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $0 + local.get $7 + i32.store + local.get $0 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=12 + local.get $0 + local.get $3 + i32.store offset=8 + local.get $0 + local.get $3 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i32) + (local $3 i32) + (local $4 i32) + (local $5 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + i32.const 15 + i32.shr_u + local.get $3 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + i32.const 13 + i32.shr_u + local.get $3 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + i32.const 16 + i32.shr_u + local.get $3 + i32.xor + local.tee $4 + call $"~lib/map/Map#find" + local.tee $3 + if + local.get $3 + local.get $2 + i32.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 + local.get $0 + local.get $3 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $5 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $5 + i32.const 4 + i32.shl + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.add + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $2 + local.get $4 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=12 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#get" (param $0 i32) (param $1 i64) (result i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $0 + i32.const 15 + i32.shr_u + local.get $0 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $0 + i32.const 13 + i32.shr_u + local.get $0 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $0 + i32.const 16 + i32.shr_u + local.get $0 + i32.xor + call $"~lib/map/Map#find" + local.tee $0 + i32.eqz + if + i32.const 1616 + i32.const 1680 + i32.const 105 + i32.const 17 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"~lib/map/Map#set" (param $0 i32) (param $1 i64) (param $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i64) + (local $10 i32) + (local $11 i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $3 + local.get $3 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $3 + local.get $3 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $3 + local.get $3 + i32.const 16 + i32.shr_u + i32.xor + local.tee $8 + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + local.set $3 + block $"__inlined_func$~lib/map/Map#find$1408" + loop $while-continue|0 + local.get $3 + if + local.get $3 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.and + if (result i32) + i32.const 0 + else + local.get $1 + local.get $3 + i64.load + i64.eq + end + if + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$~lib/map/Map#find$1408" + end + local.get $4 + i32.const -2 + i32.and + local.set $3 + br $while-continue|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $3 + end + local.get $3 + if + local.get $3 + local.get $2 + i64.store offset=8 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.eq + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + else + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shl + i32.const 1 + i32.or + end + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.const 1 + i32.add + local.tee $3 + i32.const 2 + i32.shl + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 3 + i32.shl + i32.const 3 + i32.div_s + local.tee $7 + i32.const 24 + i32.mul + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=8 + local.set $11 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $11 + local.get $0 + i32.load offset=16 + i32.const 24 + i32.mul + i32.add + local.set $6 + local.get $4 + local.set $3 + loop $while-continue|00 + local.get $6 + local.get $11 + i32.ne + if + local.get $11 + i32.load offset=16 + i32.const 1 + i32.and + i32.eqz + if + local.get $3 + local.get $11 + i64.load + local.tee $9 + i64.store + local.get $3 + local.get $11 + i64.load offset=8 + i64.store offset=8 + local.get $3 + local.get $10 + local.get $5 + local.get $9 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $9 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $12 + local.get $12 + i32.const 15 + i32.shr_u + i32.xor + i32.const -2048144777 + i32.mul + local.tee $12 + local.get $12 + i32.const 13 + i32.shr_u + i32.xor + i32.const -1028477379 + i32.mul + local.tee $12 + local.get $12 + i32.const 16 + i32.shr_u + i32.xor + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $12 + i32.load + i32.store offset=16 + local.get $12 + local.get $3 + i32.store + local.get $3 + i32.const 24 + i32.add + local.set $3 + end + local.get $11 + i32.const 24 + i32.add + local.set $11 + br $while-continue|00 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store offset=12 + local.get $0 + local.get $10 + i32.store + local.get $0 + local.get $10 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $5 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $0 + local.get $4 + i32.store offset=8 + local.get $0 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=20 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + end global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.load offset=8 + local.tee $3 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=12 + local.get $0 + local.get $0 + i32.load offset=16 + local.tee $4 + i32.const 1 + i32.add + i32.store offset=16 + local.get $3 + local.get $4 + i32.const 24 + i32.mul + i32.add + local.tee $3 + local.get $1 + i64.store + local.get $3 + local.get $2 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 16 + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $3 + local.get $4 local.get $8 - i32.store offset=4 - loop $for-loop|00 - local.get $3 - local.get $7 - i32.lt_s + local.get $0 + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=16 + local.get $0 + local.get $3 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + ) + (func $"~lib/map/Map#delete" (param $0 i32) (param $1 i64) + (local $2 i32) + (local $3 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + if + i32.const 34688 + i32.const 34736 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $1 + local.get $1 + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.const 374761401 + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.get $1 + i64.const 32 + i64.shr_u + i32.wrap_i64 + i32.const -1028477379 + i32.mul + i32.add + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.tee $2 + i32.const 15 + i32.shr_u + local.get $2 + i32.xor + i32.const -2048144777 + i32.mul + local.tee $2 + i32.const 13 + i32.shr_u + local.get $2 + i32.xor + i32.const -1028477379 + i32.mul + local.tee $2 + i32.const 16 + i32.shr_u + local.get $2 + i32.xor + call $"~lib/map/Map#find" + local.tee $2 + i32.eqz + if + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + return + end + local.get $2 + local.get $2 + i32.load offset=12 + i32.const 1 + i32.or + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $0 + i32.load offset=20 + i32.const 1 + i32.sub + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=4 + i32.const 1 + i32.shr_u + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $2 + i32.const 1 + i32.add + i32.const 4 + local.get $0 + i32.load offset=20 + local.tee $3 + local.get $3 + i32.const 4 + i32.lt_u + select + i32.ge_u + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=12 + i32.const 3 + i32.mul + i32.const 4 + i32.div_s + i32.lt_s + else + i32.const 0 + end + if + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + local.get $2 + call $"~lib/map/Map#rehash" + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $"std/map/testNumeric" + (local $0 i32) + (local $1 i32) + (local $2 i64) + (local $3 i32) + (local $4 i32) + (local $5 i32) + (local $6 i32) + (local $7 i32) + (local $8 i32) + (local $9 i32) + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 24 + call $~lib/rt/itcms/__new + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 64 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + i32.store offset=8 + local.get $1 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 9 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 11 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if - local.get $6 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $4 - i32.load offset=12 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $4 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 + i32.const 0 + i32.const 1568 + i32.const 15 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 19 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $7 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 25 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $7 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $7 + local.get $7 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=12 + local.get $8 + local.get $4 + i32.store + local.get $8 + local.get $4 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $4 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $3 + i32.const 4 + i32.shl + i32.add + local.tee $4 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $4 + i64.load + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $"~lib/map/Map#values" + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.const 26 + call $~lib/rt/itcms/__new + local.tee $4 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 16 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 3 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + i32.const 96 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + i32.store offset=8 + local.get $4 + local.get $5 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 4 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + i32.const 0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + call $"~lib/map/Map#constructor" + local.tee $5 + i32.store offset=20 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - call $"~lib/map/Map#values" - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.const 26 - call $~lib/rt/itcms/__new - local.tee $4 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - i32.const 16 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 3 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $4 i32.store offset=4 - i32.const 96 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - i32.store offset=8 - local.get $4 - local.get $5 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 4 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - i32.const 0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $8 + call $~lib/array/Array#get:length local.get $3 - local.get $4 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - call $"~lib/map/Map#constructor" - local.tee $5 - i32.store offset=20 - i32.const 0 - local.set $3 - loop $for-loop|2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $3 + local.get $8 + i32.load offset=12 + i32.ge_u + if + i32.const 1248 + i32.const 1728 + i32.const 114 + i32.const 42 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store local.get $8 - call $~lib/array/Array#get:length + i32.load offset=4 local.get $3 - i32.gt_s + i32.const 3 + i32.shl + i32.add + i64.load + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + local.get $3 + call $~lib/array/Array#__get + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $3 - local.get $8 - i32.load offset=12 - i32.ge_u - if - i32.const 1248 - i32.const 1728 - i32.const 114 - i32.const 42 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - i32.load offset=4 - local.get $3 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - local.get $3 - call $~lib/array/Array#__get - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $6 - i32.const 20 - i32.sub - i64.extend_i32_s - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 32 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - local.get $2 - local.get $2 - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - local.get $6 - i32.const 20 - i32.sub - local.tee $6 - local.get $6 - call $"~lib/map/Map#set" - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $6 + i32.const 20 + i32.sub + i64.extend_i32_s + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 32 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + local.get $2 + local.get $2 + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + local.get $6 + i32.const 20 + i32.sub + local.tee $6 + local.get $6 + call $"~lib/map/Map#set" + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $4 - i32.store offset=4 - local.get $4 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 36 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $"~lib/map/Map#get:size" - i32.const 100 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=4 + local.get $4 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 36 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $"~lib/map/Map#get:size" + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 37 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 37 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#get" + local.get $2 + i32.wrap_i64 + i32.const 20 + i32.add + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 42 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_u + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#get" - local.get $2 - i32.wrap_i64 - i32.const 20 - i32.add - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 42 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 44 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 44 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 46 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 46 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_u + call $"~lib/map/Map#has" if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 50 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - local.get $2 - i32.wrap_i64 - i32.const 10 - i32.add - call $"~lib/map/Map#set" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 52 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#delete" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $"~lib/map/Map#has" - if - i32.const 0 - i32.const 1568 - i32.const 54 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 50 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + local.get $2 + i32.wrap_i64 + i32.const 10 + i32.add + call $"~lib/map/Map#set" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 52 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#delete" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $"~lib/map/Map#has" + if + i32.const 0 + i32.const 1568 + i32.const 54 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#clear" - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $"~lib/map/Map#get:size" - if - i32.const 0 - i32.const 1568 - i32.const 60 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#clear" + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $"~lib/map/Map#get:size" + if + i32.const 0 + i32.const 1568 + i32.const 60 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34688 i32.const 34736 @@ -19121,11 +18920,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -19228,12 +19025,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -19502,11 +19297,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -19691,12 +19484,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) @@ -19711,244 +19502,241 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 28 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 28 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 local.get $5 - i32.const 268435455 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $3 local.get $2 - local.get $5 - i32.lt_s + i32.const 12 + i32.mul + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $2 - i32.const 12 - i32.mul - i32.add - local.tee $7 - i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 i32.const 1 - i32.and - i32.eqz + i32.add + local.set $1 + local.get $7 + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.const 0 + i32.lt_s if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $6 - i32.load offset=4 local.get $0 - i32.const 2 - i32.shl + i32.const 1 i32.add - local.get $4 - f32.store + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 34688 i32.const 34736 @@ -20030,11 +19818,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -20047,11 +19833,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20450,11 +20234,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -20501,7 +20283,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20580,7 +20361,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store loop $for-loop|0 @@ -20792,7 +20572,6 @@ local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -20871,7 +20650,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer @@ -21252,11 +21030,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -21373,12 +21149,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#rehash" (param $0 i32) (param $1 i32) (local $2 i32) @@ -21675,11 +21449,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.eq @@ -21878,12 +21650,10 @@ end local.get $0 i32.load offset=8 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#keys" (param $0 i32) (result i32) (local $1 i32) @@ -21898,244 +21668,241 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 31 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 31 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1728 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 local.get $5 - i32.const 134217727 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1728 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $3 local.get $2 - local.get $5 - i32.lt_s + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=12 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $2 - i32.const 4 - i32.shl + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 + i32.const 1 i32.add - local.tee $7 + local.set $1 + local.get $7 + f64.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1896 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 i32.load offset=12 - i32.const 1 - i32.and - i32.eqz + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1896 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.const 0 + i32.lt_s if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1728 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 + i32.const 1248 + i32.const 1728 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $6 - i32.load offset=4 local.get $0 - i32.const 3 - i32.shl + i32.const 1 i32.add - local.get $4 - f64.store + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 34688 i32.const 34736 @@ -22190,11 +21957,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $1 i64.reinterpret_f64 local.tee $5 @@ -22295,11 +22060,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -22312,11 +22075,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -22742,11 +22503,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.const 3 @@ -22793,7 +22552,6 @@ i32.const 24 memory.fill global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -22872,7 +22630,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $0 i32.store loop $for-loop|0 @@ -23084,7 +22841,6 @@ local.tee $3 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -23163,7 +22919,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=16 global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/math.debug.wat b/tests/compiler/std/math.debug.wat index c0d2b85695..5589c2107b 100644 --- a/tests/compiler/std/math.debug.wat +++ b/tests/compiler/std/math.debug.wat @@ -9491,40 +9491,38 @@ i64.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s + if + local.get $ux + local.get $uy + i64.ge_u if local.get $ux local.get $uy - i64.ge_u + i64.eq if - local.get $ux - local.get $uy - i64.eq - if - f64.const 0 - local.get $x - f64.mul - return - end - local.get $ux - local.get $uy - i64.sub - local.set $ux + f64.const 0 + local.get $x + f64.mul + return end local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 + local.get $uy i64.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i64.const 1 + i64.shl + local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -9765,40 +9763,38 @@ i32.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s + if + local.get $ux + local.get $uy + i32.ge_u if local.get $ux local.get $uy - i32.ge_u + i32.eq if - local.get $ux - local.get $uy - i32.eq - if - f32.const 0 - local.get $x - f32.mul - return - end - local.get $ux - local.get $uy - i32.sub - local.set $ux + f32.const 0 + local.get $x + f32.mul + return end local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 + local.get $uy i32.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i32.const 1 + i32.shl + local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -12111,39 +12107,37 @@ local.get $x return end - block $while-break|1 - loop $while-continue|1 - local.get $ex - local.get $ey - i64.gt_s + loop $while-continue|1 + local.get $ex + local.get $ey + i64.gt_s + if + local.get $uxi + local.get $uy + i64.ge_u if local.get $uxi local.get $uy - i64.ge_u - if - local.get $uxi - local.get $uy - i64.sub - local.set $uxi - local.get $q - i32.const 1 - i32.add - local.set $q - end - local.get $uxi - i64.const 1 - i64.shl + i64.sub local.set $uxi local.get $q i32.const 1 - i32.shl + i32.add local.set $q - local.get $ex - i64.const 1 - i64.sub - local.set $ex - br $while-continue|1 end + local.get $uxi + i64.const 1 + i64.shl + local.set $uxi + local.get $q + i32.const 1 + i32.shl + local.set $q + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|1 end end local.get $uxi @@ -12426,39 +12420,37 @@ local.get $x return end - block $while-break|1 - loop $while-continue|1 - local.get $ex - local.get $ey - i32.gt_s + loop $while-continue|1 + local.get $ex + local.get $ey + i32.gt_s + if + local.get $uxi + local.get $uy + i32.ge_u if local.get $uxi local.get $uy - i32.ge_u - if - local.get $uxi - local.get $uy - i32.sub - local.set $uxi - local.get $q - i32.const 1 - i32.add - local.set $q - end - local.get $uxi - i32.const 1 - i32.shl + i32.sub local.set $uxi local.get $q i32.const 1 - i32.shl + i32.add local.set $q - local.get $ex - i32.const 1 - i32.sub - local.set $ex - br $while-continue|1 end + local.get $uxi + i32.const 1 + i32.shl + local.set $uxi + local.get $q + i32.const 1 + i32.shl + local.set $q + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|1 end end local.get $uxi @@ -16725,33 +16717,31 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + i64.const 0 + i64.ne + if local.get $e + i64.const 1 + i64.and i64.const 0 i64.ne if - local.get $e - i64.const 1 - i64.and - i64.const 0 - i64.ne - if - local.get $out - local.get $x - i64.mul - local.set $out - end - local.get $e - i64.const 1 - i64.shr_u - local.set $e - local.get $x + local.get $out local.get $x i64.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i64.const 1 + i64.shr_u + local.set $e + local.get $x + local.get $x + i64.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -16949,29 +16939,27 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + if local.get $e + i32.const 1 + i32.and if - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x + local.get $out local.get $x i32.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -47962,13 +47950,11 @@ br $for-loop|0 end end - block $~lib/math/NativeMathf.seedRandom|inlined.0 - call $~lib/bindings/dom/Math.random - i64.reinterpret_f64 - local.set $value - local.get $value - call $~lib/math/NativeMath.seedRandom - end + call $~lib/bindings/dom/Math.random + i64.reinterpret_f64 + local.set $value + local.get $value + call $~lib/math/NativeMath.seedRandom i32.const 0 local.set $i|8 loop $for-loop|1 diff --git a/tests/compiler/std/math.release.wat b/tests/compiler/std/math.release.wat index 9e691da3f0..8dc86c5333 100644 --- a/tests/compiler/std/math.release.wat +++ b/tests/compiler/std/math.release.wat @@ -3894,10 +3894,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.0 @@ -5872,10 +5870,8 @@ i64.gt_u if local.get $4 - local.set $6 local.get $5 local.set $4 - local.get $6 local.set $5 end local.get $5 @@ -6039,10 +6035,8 @@ i32.gt_u if local.get $4 - local.set $6 local.get $5 local.set $4 - local.get $6 local.set $5 end local.get $4 @@ -9305,10 +9299,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.1 @@ -10471,10 +10463,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 br $~lib/math/rempio2|inlined.2 end @@ -11364,10 +11354,8 @@ f64.add end end - local.set $1 local.get $0 global.set $~lib/math/rempio2_y0 - local.get $1 global.set $~lib/math/rempio2_y1 local.get $3 br $~lib/math/rempio2|inlined.3 diff --git a/tests/compiler/std/mod.debug.wat b/tests/compiler/std/mod.debug.wat index 502ce80f3e..e83e1bff7e 100644 --- a/tests/compiler/std/mod.debug.wat +++ b/tests/compiler/std/mod.debug.wat @@ -176,40 +176,38 @@ i64.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s + if + local.get $ux + local.get $uy + i64.ge_u if local.get $ux local.get $uy - i64.ge_u + i64.eq if - local.get $ux - local.get $uy - i64.eq - if - f64.const 0 - local.get $x - f64.mul - return - end - local.get $ux - local.get $uy - i64.sub - local.set $ux + f64.const 0 + local.get $x + f64.mul + return end local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 + local.get $uy i64.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i64.const 1 + i64.shl + local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -475,40 +473,38 @@ i32.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s + if + local.get $ux + local.get $uy + i32.ge_u if local.get $ux local.get $uy - i32.ge_u + i32.eq if - local.get $ux - local.get $uy - i32.eq - if - f32.const 0 - local.get $x - f32.mul - return - end - local.get $ux - local.get $uy - i32.sub - local.set $ux + f32.const 0 + local.get $x + f32.mul + return end local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 + local.get $uy i32.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i32.const 1 + i32.shl + local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end end local.get $ux diff --git a/tests/compiler/std/new.debug.wat b/tests/compiler/std/new.debug.wat index 8a2204b50a..5b911b3d42 100644 --- a/tests/compiler/std/new.debug.wat +++ b/tests/compiler/std/new.debug.wat @@ -109,37 +109,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -365,22 +363,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -594,27 +590,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -632,28 +626,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -978,27 +970,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1007,37 +997,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1127,7 +1115,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1196,15 +1183,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1273,15 +1258,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1289,21 +1272,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1311,27 +1292,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1500,39 +1479,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1551,31 +1528,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2338,7 +2313,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/new.release.wat b/tests/compiler/std/new.release.wat index abc198a4f5..3e9a97e4fe 100644 --- a/tests/compiler/std/new.release.wat +++ b/tests/compiler/std/new.release.wat @@ -1032,7 +1032,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1065,7 +1064,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/std/object.debug.wat b/tests/compiler/std/object.debug.wat index d7fba004ee..b2cfc90f1a 100644 --- a/tests/compiler/std/object.debug.wat +++ b/tests/compiler/std/object.debug.wat @@ -172,40 +172,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/std/operator-overloading.debug.wat b/tests/compiler/std/operator-overloading.debug.wat index f7e34ee73b..eb247a5394 100644 --- a/tests/compiler/std/operator-overloading.debug.wat +++ b/tests/compiler/std/operator-overloading.debug.wat @@ -165,37 +165,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -421,22 +419,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -650,27 +646,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -688,28 +682,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1034,27 +1026,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1063,37 +1053,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1183,7 +1171,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1252,15 +1239,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1329,15 +1314,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1345,21 +1328,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1367,27 +1348,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1556,39 +1535,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1607,31 +1584,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2550,29 +2525,27 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + if local.get $e + i32.const 1 + i32.and if - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x + local.get $out local.get $x i32.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -2704,40 +2677,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -3195,7 +3166,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/operator-overloading.release.wat b/tests/compiler/std/operator-overloading.release.wat index 798cf087d5..1813e83bcf 100644 --- a/tests/compiler/std/operator-overloading.release.wat +++ b/tests/compiler/std/operator-overloading.release.wat @@ -1097,7 +1097,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1130,7 +1129,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2102,11 +2100,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.eq @@ -2116,23 +2112,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.eq else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/operator-overloading/Tester.notEquals (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2159,11 +2151,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.ne @@ -2173,23 +2163,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.ne else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/operator-overloading/TesterInlineStatic#constructor (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2517,12 +2503,10 @@ local.get $0 i32.load offset=4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/operator-overloading (local $0 i32) @@ -2605,36 +2589,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/a global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/a @@ -2697,36 +2673,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.sub - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/s global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/s @@ -2787,36 +2755,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.mul - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.mul call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/m global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/m @@ -2879,36 +2839,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.div_s - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.div_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/d global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/d @@ -2971,36 +2923,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.rem_s - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.rem_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/f global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/f @@ -3060,36 +3004,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load call $~lib/math/ipow32 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 call $~lib/math/ipow32 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/p global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/p @@ -3152,36 +3088,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.and - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.and call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/n global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/n @@ -3244,36 +3172,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.or - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.or call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/o global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/o @@ -3336,36 +3256,28 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.xor - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/x global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/x @@ -3532,11 +3444,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.gt_s @@ -3546,23 +3456,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.gt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gt global.get $std/operator-overloading/gt i32.const 1 @@ -3607,11 +3513,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.ge_s @@ -3621,23 +3525,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.ge_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/gte global.get $std/operator-overloading/gte i32.const 1 @@ -3682,11 +3582,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.lt_s @@ -3696,23 +3594,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.lt_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/le global.get $std/operator-overloading/le i32.const 1 @@ -3757,11 +3651,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.le_s @@ -3771,23 +3663,19 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.le_s else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/leq global.get $std/operator-overloading/leq i32.const 1 @@ -3826,22 +3714,18 @@ i32.load i32.const 3 i32.shr_s - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shr_s call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -3898,22 +3782,18 @@ i32.load i32.const 3 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shr_u call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/ures global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/ures @@ -3970,22 +3850,18 @@ i32.load i32.const 3 i32.shl - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 3 i32.shl call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/sres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/sres @@ -4040,20 +3916,16 @@ i32.store local.get $0 i32.load - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/pres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pres @@ -4061,12 +3933,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos local.tee $1 i32.store - local.get $0 local.get $1 i32.load i32.eq @@ -4077,12 +3947,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/pos local.tee $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.eq @@ -4124,22 +3992,18 @@ local.get $0 i32.load i32.sub - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 i32.const 0 local.get $0 i32.load offset=4 i32.sub call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/nres global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/nres @@ -4147,12 +4011,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg local.tee $1 i32.store - local.get $0 i32.const 0 local.get $1 i32.load @@ -4165,12 +4027,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/neg local.tee $1 i32.store - local.get $0 i32.const 0 local.get $1 i32.load offset=4 @@ -4214,22 +4074,18 @@ i32.load i32.const -1 i32.xor - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const -1 i32.xor call $std/operator-overloading/Tester#constructor - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 global.set $std/operator-overloading/res global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/res @@ -4237,12 +4093,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not local.tee $1 i32.store - local.get $0 local.get $1 i32.load i32.const -1 @@ -4255,12 +4109,10 @@ i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/operator-overloading/not local.tee $1 i32.store - local.get $0 local.get $1 i32.load offset=4 i32.const -1 @@ -4311,12 +4163,10 @@ local.get $0 i32.load offset=4 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz global.set $std/operator-overloading/bres global.get $~lib/memory/__stack_pointer @@ -4536,22 +4386,18 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 i32.add call $std/operator-overloading/Tester#constructor - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp @@ -4636,22 +4482,18 @@ i32.load i32.const 1 i32.sub - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 i32.sub call $std/operator-overloading/Tester#constructor - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 global.set $std/operator-overloading/incdec local.get $0 global.set $std/operator-overloading/tmp @@ -4729,11 +4571,9 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 @@ -4757,26 +4597,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add @@ -4826,11 +4660,9 @@ i32.load i32.const 1 i32.add - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load offset=4 i32.const 1 @@ -4854,26 +4686,20 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 local.get $1 i32.load i32.add - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $0 local.get $1 i32.load offset=4 i32.add diff --git a/tests/compiler/std/pointer.debug.wat b/tests/compiler/std/pointer.debug.wat index 73694f36a7..9381398907 100644 --- a/tests/compiler/std/pointer.debug.wat +++ b/tests/compiler/std/pointer.debug.wat @@ -413,36 +413,34 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#set:value|inlined.0 - global.get $std/pointer/one - local.set $this|26 - block $std/pointer/Pointer#get:value|inlined.6 (result i32) - global.get $std/pointer/two - local.set $this|25 - i32.const 1 - drop - local.get $this|25 - br $std/pointer/Pointer#get:value|inlined.6 - end - local.set $value + global.get $std/pointer/one + local.set $this|26 + block $std/pointer/Pointer#get:value|inlined.6 (result i32) + global.get $std/pointer/two + local.set $this|25 i32.const 1 drop + local.get $this|25 + br $std/pointer/Pointer#get:value|inlined.6 + end + local.set $value + i32.const 1 + drop + i32.const 0 + drop + local.get $value + i32.const 0 + i32.eq + if + local.get $this|26 i32.const 0 - drop + i32.const 8 + memory.fill + else + local.get $this|26 local.get $value - i32.const 0 - i32.eq - if - local.get $this|26 - i32.const 0 - i32.const 8 - memory.fill - else - local.get $this|26 - local.get $value - i32.const 8 - memory.copy - end + i32.const 8 + memory.copy end block $std/pointer/Pointer#get:offset|inlined.8 (result i32) global.get $std/pointer/one @@ -515,36 +513,32 @@ br $std/pointer/Pointer#constructor|inlined.0 end global.set $std/pointer/buf - block $std/pointer/Pointer#set|inlined.0 - global.get $std/pointer/buf - local.set $this|34 - i32.const 0 - local.set $index - f32.const 1.100000023841858 - local.set $value|36 - local.get $this|34 - local.get $index - i32.const 4 - i32.mul - i32.add - local.get $value|36 - f32.store - end - block $std/pointer/Pointer#set|inlined.1 - global.get $std/pointer/buf - local.set $this|37 - i32.const 1 - local.set $index|38 - f32.const 1.2000000476837158 - local.set $value|39 - local.get $this|37 - local.get $index|38 - i32.const 4 - i32.mul - i32.add - local.get $value|39 - f32.store - end + global.get $std/pointer/buf + local.set $this|34 + i32.const 0 + local.set $index + f32.const 1.100000023841858 + local.set $value|36 + local.get $this|34 + local.get $index + i32.const 4 + i32.mul + i32.add + local.get $value|36 + f32.store + global.get $std/pointer/buf + local.set $this|37 + i32.const 1 + local.set $index|38 + f32.const 1.2000000476837158 + local.set $value|39 + local.get $this|37 + local.get $index|38 + i32.const 4 + i32.mul + i32.add + local.get $value|39 + f32.store block $std/pointer/Pointer#get|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|40 @@ -667,21 +661,19 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#set|inlined.2 - global.get $std/pointer/buf - local.set $this|48 - i32.const 2 - local.set $index|49 - f32.const 1.2999999523162842 - local.set $value|50 - local.get $this|48 - local.get $index|49 - i32.const 4 - i32.mul - i32.add - local.get $value|50 - f32.store - end + global.get $std/pointer/buf + local.set $this|48 + i32.const 2 + local.set $index|49 + f32.const 1.2999999523162842 + local.set $value|50 + local.get $this|48 + local.get $index|49 + i32.const 4 + i32.mul + i32.add + local.get $value|50 + f32.store block $std/pointer/Pointer#get|inlined.4 (result f32) global.get $std/pointer/buf local.set $this|51 @@ -743,17 +735,15 @@ call $~lib/builtins/abort unreachable end - block $std/pointer/Pointer#set:value|inlined.0 - global.get $std/pointer/buf - local.set $this|55 - f32.const 1.399999976158142 - local.set $value|56 - i32.const 0 - drop - local.get $this|55 - local.get $value|56 - f32.store - end + global.get $std/pointer/buf + local.set $this|55 + f32.const 1.399999976158142 + local.set $value|56 + i32.const 0 + drop + local.get $this|55 + local.get $value|56 + f32.store block $std/pointer/Pointer#get:value|inlined.0 (result f32) global.get $std/pointer/buf local.set $this|57 diff --git a/tests/compiler/std/set.debug.wat b/tests/compiler/std/set.debug.wat index 301f6044a4..2b9cc560d4 100644 --- a/tests/compiler/std/set.debug.wat +++ b/tests/compiler/std/set.debug.wat @@ -118,37 +118,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -374,22 +372,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -603,27 +599,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -641,28 +635,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -987,27 +979,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1016,37 +1006,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1136,7 +1124,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1205,15 +1192,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1282,15 +1267,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1298,21 +1281,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1320,27 +1301,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1509,39 +1488,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1560,31 +1537,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -4298,16 +4273,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -4383,7 +4356,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/set/Set~visit (param $0 i32) (param $1 i32) local.get $0 @@ -4881,45 +4853,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.extend8_s + local.get $key + i32.extend8_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.extend8_s - local.get $key - i32.extend8_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -5040,63 +5010,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -6736,47 +6704,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + i32.const 255 i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.const 255 - i32.and - local.get $key - i32.const 255 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 255 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return + end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -6897,63 +6863,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -8474,45 +8438,43 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + i32.extend16_s + local.get $key + i32.extend16_s + i32.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.extend16_s - local.get $key - i32.extend16_s - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -8633,63 +8595,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -10210,47 +10170,45 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry - if + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + i32.const 65535 i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - i32.const 65535 - i32.and - local.get $key - i32.const 65535 - i32.and - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor + local.get $key + i32.const 65535 i32.and - local.set $entry - br $while-continue|0 + i32.eq + else + i32.const 0 + end + if + local.get $entry + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -10371,63 +10329,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -11948,43 +11904,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -12105,63 +12059,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -13682,43 +13634,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -13839,63 +13789,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -15416,43 +15364,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -15573,63 +15519,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -17151,43 +17095,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + i64.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - i64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -17308,63 +17250,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -18886,43 +18826,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + f32.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - f32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -19043,63 +18981,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 8 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 8 + br $~lib/set/ENTRY_SIZE|inlined.4 end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -20621,43 +20557,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $~lib/set/SetEntry#get:taggedNext + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $~lib/set/SetEntry#get:key + local.get $key + f64.eq + else + i32.const 0 + end if local.get $entry - call $~lib/set/SetEntry#get:taggedNext - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $~lib/set/SetEntry#get:key - local.get $key - f64.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -20778,63 +20712,61 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $~lib/set/SetEntry#get:taggedNext + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $~lib/set/SetEntry#get:taggedNext - i32.const 1 + call $~lib/set/SetEntry#get:key + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $~lib/set/SetEntry#set:key + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $~lib/set/SetEntry#get:key - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $~lib/set/SetEntry#set:key - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $~lib/set/SetEntry#set:taggedNext - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) - i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.3 - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $~lib/set/SetEntry#set:taggedNext + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $~lib/set/ENTRY_SIZE|inlined.3 (result i32) i32.const 16 - br $~lib/set/ENTRY_SIZE|inlined.4 + br $~lib/set/ENTRY_SIZE|inlined.3 end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $~lib/set/ENTRY_SIZE|inlined.4 (result i32) + i32.const 16 + br $~lib/set/ENTRY_SIZE|inlined.4 + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/set.release.wat b/tests/compiler/std/set.release.wat index 0521ee3c0d..455f22dbab 100644 --- a/tests/compiler/std/set.release.wat +++ b/tests/compiler/std/set.release.wat @@ -1054,7 +1054,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1087,7 +1086,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1888,11 +1886,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -1997,12 +1993,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -2258,11 +2252,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2312,7 +2304,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -2326,7 +2317,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -2400,12 +2390,10 @@ i32.store local.get $0 i32.load offset=20 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (local $4 i32) @@ -2672,12 +2660,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2721,12 +2707,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -2839,11 +2823,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2960,579 +2942,574 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 5 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 1073741820 - i32.gt_u if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|00 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 5 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 local.get $2 - local.get $5 - i32.lt_s + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_s + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $2 - br $for-loop|00 + local.set $0 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 + i32.store offset=4 local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 local.get $6 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.ne + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -3688,12 +3665,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -3950,11 +3925,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -4004,7 +3977,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -4018,7 +3990,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -4110,12 +4081,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -4229,11 +4198,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -4271,579 +4238,574 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 7 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 7 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 1073741820 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 local.get $5 - i32.const 1073741820 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load8_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 local.get $2 - local.get $5 - i32.lt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load8_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 local.get $6 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.ne + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 + end end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -4967,11 +4929,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -5076,12 +5036,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -5337,11 +5295,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -5391,7 +5347,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -5405,7 +5360,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -5604,12 +5558,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -5722,11 +5674,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -5764,581 +5714,576 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 9 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 9 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 local.get $5 - i32.const 536870910 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_s + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 local.get $2 - local.get $5 - i32.lt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_s - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 local.get $6 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.ne + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 i32.const 50 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -6494,12 +6439,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -6756,11 +6699,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -6810,7 +6751,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -6824,7 +6764,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -6918,12 +6857,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -7037,11 +6974,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -7079,581 +7014,576 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 + i32.const 100 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 i32.const 100 - i32.ne + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 100 - i32.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 11 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 536870910 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 1 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 18 + local.get $4 + local.get $2 i32.const 3 - call $~lib/builtins/abort - unreachable + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz + if + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + local.get $7 + i32.load16_u + call $~lib/array/Array#__set + local.get $0 + i32.const 1 + i32.add + local.set $0 + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 11 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $6 i32.store offset=4 local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 536870910 - i32.gt_u + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 1 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 local.get $2 - local.get $5 - i32.lt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load16_u - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $0 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 local.get $6 - call $~lib/array/Array#get:length local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 - end + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 local.get $0 - i32.ne + i32.const 50 + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -7777,11 +7707,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -7883,12 +7811,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -8143,11 +8069,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -8197,7 +8121,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -8211,7 +8134,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -8410,12 +8332,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -8527,11 +8447,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -8569,581 +8487,576 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 13 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $2 - loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 local.get $0 - i32.ne + i32.const 100 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_s + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 13 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s + if + local.get $4 + local.get $2 + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $6 + i32.store + local.get $6 local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $7 + i32.load + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|4 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 + end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 i32.const 50 - i32.ne + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 + i32.const 50 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -9267,11 +9180,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -9373,12 +9284,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -9633,11 +9542,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -9687,7 +9594,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -9701,7 +9607,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $2 local.get $4 i32.const 3 i32.shl @@ -9795,12 +9700,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i32) (local $2 i32) @@ -9912,11 +9815,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -9954,581 +9855,576 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 50 - local.set $0 - loop $for-loop|1 - local.get $0 - i32.const 100 - i32.lt_u - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|1 - end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $0 i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 15 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 - local.get $5 - i32.const 268435455 - i32.gt_u + i32.lt_u if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - local.set $0 - loop $for-loop|00 - local.get $2 - local.get $5 - i32.lt_s - if - local.get $4 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - local.get $7 - i32.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|00 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - local.get $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - local.set $2 - loop $for-loop|2 + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 50 + local.set $0 + loop $for-loop|1 + local.get $0 + i32.const 100 + i32.lt_u + if global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 - call $~lib/array/Array#get:length - local.get $2 - i32.gt_s + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $1 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=16 - local.get $0 - local.get $6 - local.get $2 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 15 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + local.set $0 + loop $for-loop|00 + local.get $2 + local.get $5 + i32.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 + local.get $4 + local.get $2 i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 0 - local.set $0 - loop $for-loop|3 - local.get $0 - i32.const 50 - i32.lt_u + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 + local.get $6 + i32.store + local.get $6 local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end + local.get $7 + i32.load + call $~lib/array/Array#__set local.get $0 i32.const 1 i32.add local.set $0 - br $for-loop|3 end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $2 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer - local.get $1 + local.get $6 i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne + local.get $6 + call $~lib/array/Array#get:length + local.get $2 + i32.gt_s if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $1 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=16 + local.get $0 + local.get $6 + local.get $2 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|2 end + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if i32.const 0 - local.set $0 - loop $for-loop|4 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|3 + local.get $0 + i32.const 50 + i32.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $0 - i32.const 50 - i32.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $0 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 0 + local.set $0 + loop $for-loop|4 + local.get $0 i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + i32.lt_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $0 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -10652,11 +10548,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -10770,12 +10664,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -11055,11 +10947,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -11109,7 +10999,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -11123,7 +11012,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl @@ -11323,12 +11211,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) @@ -11453,11 +11339,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -11576,579 +11460,574 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 100 - i64.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $2 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 100 - i64.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 17 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 134217727 - i32.gt_u - if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $8 - local.get $7 - i32.store - local.get $8 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 17 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $8 + local.get $7 + i32.store + local.get $8 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 + i32.lt_s + if + local.get $5 local.get $3 - local.get $6 - i32.lt_s + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $5 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $7 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|2 + i32.store offset=4 + local.get $8 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $8 + local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $1 local.get $8 - call $~lib/array/Array#get:length local.get $3 - i32.gt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $1 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $0 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_s + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_s + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_s if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -12272,11 +12151,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -12390,12 +12267,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -12675,11 +12550,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -12729,7 +12602,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -12743,7 +12615,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 4 i32.shl @@ -12838,12 +12709,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 i64) (local $2 i32) @@ -12968,11 +12837,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -13012,579 +12879,574 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $1 - i32.store - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $1 + i32.store + loop $for-loop|0 + local.get $2 + i64.const 100 + i64.lt_u + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 100 - i64.lt_u + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 6 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 8 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|0 + i32.const 0 + i32.const 1568 + i32.const 6 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 10 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 50 - local.set $2 - loop $for-loop|1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 100 - i64.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 14 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 16 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|1 + i32.const 0 + i32.const 1568 + i32.const 8 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 100 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=8 - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $1 - i32.load offset=16 - local.set $6 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 19 - call $~lib/rt/itcms/__new - local.tee $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store - local.get $8 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if i32.const 0 - i32.store offset=12 - local.get $6 - i32.const 134217727 - i32.gt_u + i32.const 1568 + i32.const 10 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 50 + local.set $2 + loop $for-loop|1 + local.get $2 + i64.const 100 + i64.lt_u if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 14 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 16 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|1 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $6 - local.get $6 - i32.const 8 - i32.le_u - select + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 100 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 18 i32.const 3 - i32.shl - local.tee $9 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $8 - local.get $7 - i32.store - local.get $8 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - local.get $9 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=8 + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.load offset=16 + local.set $6 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 19 + call $~lib/rt/itcms/__new + local.tee $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store + local.get $8 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + i32.store offset=12 + local.get $6 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $6 + local.get $6 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $9 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $8 + local.get $7 + i32.store + local.get $8 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $9 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + local.get $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + loop $for-loop|00 + local.get $3 local.get $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - loop $for-loop|00 + i32.lt_s + if + local.get $5 local.get $3 - local.get $6 - i32.lt_s + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $5 - local.get $3 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 - i32.const 1 - i32.and - i32.eqz - if - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store - local.get $8 - local.get $0 - local.get $7 - i64.load - call $~lib/array/Array#__set - local.get $0 - i32.const 1 - i32.add - local.set $0 - end - local.get $3 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + local.get $7 + i64.load + call $~lib/array/Array#__set + local.get $0 i32.const 1 i32.add - local.set $3 - br $for-loop|00 + local.set $0 end + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|00 end + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store + local.get $8 + local.get $0 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + call $~lib/set/Set#constructor + local.tee $0 + i32.store offset=12 + i32.const 0 + local.set $3 + loop $for-loop|2 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store - local.get $8 - local.get $0 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 + i32.store offset=4 local.get $8 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - call $~lib/set/Set#constructor - local.tee $0 - i32.store offset=12 - i32.const 0 - local.set $3 - loop $for-loop|2 + call $~lib/array/Array#get:length + local.get $3 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer local.get $8 - i32.store offset=4 + i32.store offset=16 + local.get $1 local.get $8 - call $~lib/array/Array#get:length local.get $3 - i32.gt_s + call $~lib/array/Array#__get + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $1 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 24 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=16 - local.get $0 - local.get $8 - local.get $3 - call $~lib/array/Array#__get - call $~lib/set/Set#add - local.get $3 - i32.const 1 - i32.add - local.set $3 - br $for-loop|2 + i32.const 0 + i32.const 1568 + i32.const 24 + i32.const 5 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=16 + local.get $0 + local.get $8 + local.get $3 + call $~lib/array/Array#__get + call $~lib/set/Set#add + local.get $3 + i32.const 1 + i32.add + local.set $3 + br $for-loop|2 end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - call $~lib/set/Set#get:size - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - local.get $0 - i32.ne + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/set/Set#get:size + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + local.get $0 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|3 + local.get $2 + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|3 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_u + call $~lib/set/Set#has + i32.eqz if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 31 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 33 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|3 + i32.const 0 + i32.const 1568 + i32.const 31 + i32.const 5 + call $~lib/builtins/abort + unreachable end - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 35 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i64.const 0 - local.set $2 - loop $for-loop|4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 local.get $2 - i64.const 50 - i64.lt_u + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 39 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#add - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 41 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#delete - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/set/Set#has - if - i32.const 0 - i32.const 1568 - i32.const 43 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i64.const 1 - i64.add - local.set $2 - br $for-loop|4 + i32.const 0 + i32.const 1568 + i32.const 33 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|3 end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size - i32.const 50 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 45 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#clear - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - call $~lib/set/Set#get:size + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 35 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i64.const 0 + local.set $2 + loop $for-loop|4 + local.get $2 + i64.const 50 + i64.lt_u if - i32.const 0 - i32.const 1568 - i32.const 49 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - return + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 39 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#add + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 41 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#delete + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/set/Set#has + if + i32.const 0 + i32.const 1568 + i32.const 43 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i64.const 1 + i64.add + local.set $2 + br $for-loop|4 + end end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + i32.const 50 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 45 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#clear + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + call $~lib/set/Set#get:size + if + i32.const 0 + i32.const 1568 + i32.const 49 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 34544 i32.const 34592 @@ -13708,11 +13570,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -13815,12 +13675,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -14078,11 +13936,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.eq @@ -14132,7 +13988,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -14146,7 +14001,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $3 local.get $4 i32.const 3 i32.shl @@ -14209,244 +14063,241 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 21 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 21 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 268435455 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 local.get $5 - i32.const 268435455 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $3 local.get $2 - local.get $5 - i32.lt_s + i32.const 3 + i32.shl + i32.add + local.tee $7 + i32.load offset=4 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $2 - i32.const 3 - i32.shl - i32.add - local.tee $7 - i32.load offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 i32.const 1 - i32.and - i32.eqz + i32.add + local.set $1 + local.get $7 + f32.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.const 0 + i32.lt_s if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 2 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $6 - i32.load offset=4 local.get $0 - i32.const 2 - i32.shl + i32.const 1 i32.add - local.get $4 - f32.store + local.tee $7 + i32.const 2 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 2 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.get $4 + f32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 34544 i32.const 34592 @@ -14500,12 +14351,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f32) (local $2 i32) @@ -14619,11 +14468,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $0 i32.load offset=12 i32.const 3 @@ -15169,11 +15016,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -15290,12 +15135,10 @@ call $~lib/set/Set#find i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/set/Set#rehash (param $0 i32) (param $1 i32) (local $2 i32) @@ -15581,11 +15424,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.eq @@ -15635,7 +15476,6 @@ i32.store local.get $0 i32.load offset=8 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store @@ -15649,7 +15489,6 @@ i32.const 1 i32.add i32.store offset=16 - local.get $4 local.get $5 i32.const 4 i32.shl @@ -15682,274 +15521,271 @@ local.get $5 local.get $3 local.get $0 - i32.load offset=4 - i32.and - i32.const 2 - i32.shl - i32.add - local.tee $0 - i32.load + i32.load offset=4 + i32.and + i32.const 2 + i32.shl + i32.add + local.tee $0 + i32.load + i32.store offset=8 + local.get $0 + local.get $4 + i32.store + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/set/Set#values (param $0 i32) (result i32) + (local $1 i32) + (local $2 i32) + (local $3 i32) + (local $4 f64) + (local $5 i32) + (local $6 i32) + (local $7 i32) + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + block $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=8 + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.load offset=16 + local.set $5 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.const 23 + call $~lib/rt/itcms/__new + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store + local.get $6 + i32.const 0 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.store offset=12 + local.get $5 + i32.const 134217727 + i32.gt_u + if + i32.const 1456 + i32.const 1616 + i32.const 70 + i32.const 60 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + local.get $5 + local.get $5 + i32.const 8 + i32.le_u + select + i32.const 3 + i32.shl + local.tee $0 + i32.const 1 + call $~lib/rt/itcms/__new + local.tee $7 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=12 + local.get $6 + local.get $7 + i32.store + local.get $6 + local.get $7 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $0 i32.store offset=8 - local.get $0 - local.get $4 - i32.store - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/set/Set#values (param $0 i32) (result i32) - (local $1 i32) - (local $2 i32) - (local $3 i32) - (local $4 f64) - (local $5 i32) - (local $6 i32) - (local $7 i32) - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=8 - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.load offset=16 - local.set $5 - global.get $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.const 23 - call $~lib/rt/itcms/__new - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store - local.get $6 - i32.const 0 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + loop $for-loop|0 + local.get $2 local.get $5 - i32.const 134217727 - i32.gt_u + i32.lt_s if - i32.const 1456 - i32.const 1616 - i32.const 70 - i32.const 60 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - local.get $5 - local.get $5 - i32.const 8 - i32.le_u - select - i32.const 3 - i32.shl - local.tee $0 - i32.const 1 - call $~lib/rt/itcms/__new - local.tee $7 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=12 - local.get $6 - local.get $7 - i32.store - local.get $6 - local.get $7 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - loop $for-loop|0 + local.get $3 local.get $2 - local.get $5 - i32.lt_s + i32.const 4 + i32.shl + i32.add + local.tee $7 + i32.load offset=8 + i32.const 1 + i32.and + i32.eqz if - local.get $3 - local.get $2 - i32.const 4 - i32.shl - i32.add - local.tee $7 - i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $1 + local.tee $0 i32.const 1 - i32.and - i32.eqz + i32.add + local.set $1 + local.get $7 + f64.load + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1748 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $0 + local.get $6 + i32.load offset=12 + i32.ge_u if - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $1 - local.tee $0 - i32.const 1 - i32.add - local.set $1 - local.get $7 - f64.load - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 1748 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $0 - local.get $6 - i32.load offset=12 - i32.ge_u + i32.const 0 + i32.lt_s if - local.get $0 - i32.const 0 - i32.lt_s - if - i32.const 1248 - i32.const 1616 - i32.const 130 - i32.const 22 - call $~lib/builtins/abort - unreachable - end - local.get $6 - local.get $0 - i32.const 1 - i32.add - local.tee $7 - i32.const 3 - i32.const 1 - call $~lib/array/ensureCapacity - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $7 - i32.store offset=12 + i32.const 1248 + i32.const 1616 + i32.const 130 + i32.const 22 + call $~lib/builtins/abort + unreachable end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store local.get $6 - i32.load offset=4 local.get $0 - i32.const 3 - i32.shl + i32.const 1 i32.add - local.get $4 - f64.store + local.tee $7 + i32.const 3 + i32.const 1 + call $~lib/array/ensureCapacity global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $7 + i32.store offset=12 end - local.get $2 - i32.const 1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + i32.load offset=4 + local.get $0 + i32.const 3 + i32.shl i32.add - local.set $2 - br $for-loop|0 + local.get $4 + f64.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $1 - call $~lib/array/Array#set:length - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return end - unreachable + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $1 + call $~lib/array/Array#set:length + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $6 + return end i32.const 34544 i32.const 34592 @@ -16003,12 +15839,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/set/Set#delete (param $0 i32) (param $1 f64) (local $2 i64) @@ -16136,11 +15970,9 @@ i32.store local.get $0 i32.load offset=20 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $4 local.get $0 i32.load offset=12 i32.const 3 diff --git a/tests/compiler/std/static-array.debug.wat b/tests/compiler/std/static-array.debug.wat index cab51153a5..7ab6891f98 100644 --- a/tests/compiler/std/static-array.debug.wat +++ b/tests/compiler/std/static-array.debug.wat @@ -142,37 +142,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 672 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 672 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -394,22 +392,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -619,27 +615,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -657,28 +651,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1003,27 +995,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1032,37 +1022,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1152,7 +1140,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1221,15 +1208,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1298,15 +1283,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1314,21 +1297,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1336,27 +1317,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1525,39 +1504,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1576,31 +1553,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2521,7 +2496,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/std/static-array.release.wat b/tests/compiler/std/static-array.release.wat index 78fadac341..23f01fa406 100644 --- a/tests/compiler/std/static-array.release.wat +++ b/tests/compiler/std/static-array.release.wat @@ -1066,7 +1066,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1099,7 +1098,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1332,12 +1330,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array#__get (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -1383,12 +1379,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -1921,12 +1915,10 @@ i32.shl i32.add i64.load - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $~lib/array/Array#__get (param $0 i32) (result f32) (local $1 f32) @@ -1973,12 +1965,10 @@ i32.shl i32.add f32.load - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $~lib/array/Array#__get (param $0 i32) (result f64) (local $1 f64) @@ -2025,12 +2015,10 @@ i32.shl i32.add f64.load - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $start:std/static-array global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/std/staticarray.debug.wat b/tests/compiler/std/staticarray.debug.wat index 4cd6506637..d05a08308f 100644 --- a/tests/compiler/std/staticarray.debug.wat +++ b/tests/compiler/std/staticarray.debug.wat @@ -200,37 +200,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 384 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 384 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -456,22 +454,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -685,27 +681,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -723,28 +717,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1069,27 +1061,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1098,37 +1088,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1218,7 +1206,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1287,15 +1274,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1364,15 +1349,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1380,21 +1363,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1402,27 +1383,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1591,39 +1570,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1642,31 +1619,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2575,40 +2550,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 - if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b - local.get $a + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne + if + local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2789,42 +2762,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -3000,151 +2971,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -3184,87 +3153,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $2) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $2) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -3521,16 +3486,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3607,7 +3570,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/staticarray/StaticArray#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -3624,27 +3586,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end ) @@ -3683,27 +3643,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end ) @@ -4531,32 +4489,30 @@ drop i32.const 0 local.set $off - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $off + local.get $size + i32.lt_u + if + local.get $sourceStart local.get $off - local.get $size - i32.lt_u - if - local.get $sourceStart - local.get $off - i32.add - i32.load - local.set $ref - local.get $outStart - local.get $off - i32.add - local.get $ref - i32.store - local.get $outStart - local.get $ref - i32.const 1 - call $~lib/rt/itcms/__link - local.get $off - i32.const 4 - i32.add - local.set $off - br $while-continue|0 - end + i32.add + i32.load + local.set $ref + local.get $outStart + local.get $off + i32.add + local.get $ref + i32.store + local.get $outStart + local.get $ref + i32.const 1 + call $~lib/rt/itcms/__link + local.get $off + i32.const 4 + i32.add + local.set $off + br $while-continue|0 end end local.get $out @@ -5015,46 +4971,44 @@ select local.set $fromIndex end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $this local.get $fromIndex - local.get $length - i32.lt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + local.get $6 + local.get $value + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/string/String.__eq if - local.get $this local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load local.set $6 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - local.get $6 - local.get $value - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/string/String.__eq - if - local.get $fromIndex - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end - local.get $fromIndex - i32.const 1 + i32.const 8 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $6 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -5162,49 +5116,47 @@ select local.set $fromIndex end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $this local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this - local.get $fromIndex - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem + local.get $elem + local.get $value + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem local.get $elem + f64.ne local.get $value - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f64.ne - local.get $value - local.get $value - f64.ne - i32.and - end - if - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $fromIndex + local.get $value + f64.ne + i32.and + end + if i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const 0 @@ -5215,12 +5167,6 @@ global.set $~lib/memory/__stack_pointer local.get $7 return - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 ) (func $~lib/staticarray/StaticArray#includes (param $this i32) (param $value f32) (param $fromIndex i32) (result i32) (local $length i32) @@ -5282,49 +5228,47 @@ select local.set $fromIndex end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $this local.get $fromIndex - local.get $length - i32.lt_s - if - local.get $this - local.get $fromIndex - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem + local.get $elem + local.get $value + f32.eq + if (result i32) + i32.const 1 + else local.get $elem + local.get $elem + f32.ne local.get $value - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f32.ne - local.get $value - local.get $value - f32.ne - i32.and - end - if - i32.const 1 - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 - return - end - local.get $fromIndex + local.get $value + f32.ne + i32.and + end + if i32.const 1 + local.set $7 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $7 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const 0 @@ -5335,12 +5279,6 @@ global.set $~lib/memory/__stack_pointer local.get $7 return - local.set $7 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $7 ) (func $~lib/staticarray/StaticArray#indexOf (param $this i32) (param $value i32) (param $fromIndex i32) (result i32) (local $length i32) @@ -5399,36 +5337,34 @@ select local.set $fromIndex end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + local.get $length + i32.lt_s + if + local.get $this local.get $fromIndex - local.get $length - i32.lt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq if - local.get $this - local.get $fromIndex - i32.const 2 - i32.shl - i32.add - i32.load - local.get $value - i32.eq - if - local.get $fromIndex - local.set $6 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $6 - return - end local.get $fromIndex - i32.const 1 + local.set $6 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $6 + return end + local.get $fromIndex + i32.const 1 + i32.add + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -5491,36 +5427,34 @@ local.set $fromIndex end end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $fromIndex + i32.const 0 + i32.ge_s + if + local.get $this local.get $fromIndex - i32.const 0 - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $value + i32.eq if - local.get $this local.get $fromIndex - i32.const 2 - i32.shl + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 4 i32.add - i32.load - local.get $value - i32.eq - if - local.get $fromIndex - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - return - end - local.get $fromIndex - i32.const 1 - i32.sub - local.set $fromIndex - br $while-continue|0 + global.set $~lib/memory/__stack_pointer + local.get $4 + return end + local.get $fromIndex + i32.const 1 + i32.sub + local.set $fromIndex + br $while-continue|0 end end i32.const -1 @@ -5851,12 +5785,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 return - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#toString (param $this i32) (result i32) (local $1 i32) @@ -7303,145 +7231,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -10222,27 +10148,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this diff --git a/tests/compiler/std/staticarray.release.wat b/tests/compiler/std/staticarray.release.wat index 4de33aa9ea..4fde8c58d3 100644 --- a/tests/compiler/std/staticarray.release.wat +++ b/tests/compiler/std/staticarray.release.wat @@ -994,7 +994,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1027,7 +1026,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -1970,7 +1968,6 @@ i32.shl i32.add i32.load - local.set $4 local.get $0 local.get $1 i32.const 1 @@ -1980,11 +1977,8 @@ i32.shl i32.add i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $5 i32.const 3872 i32.load call_indirect (type $0) @@ -2003,14 +1997,10 @@ i32.add local.tee $4 i32.load offset=4 - local.set $5 local.get $4 i32.load - local.set $4 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $4 i32.const 3872 i32.load call_indirect (type $0) @@ -2078,14 +2068,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $4 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $4 - local.get $1 i32.const 3872 i32.load call_indirect (type $0) @@ -2473,12 +2459,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#__set (param $0 i32) (param $1 i32) global.get $~lib/memory/__stack_pointer @@ -2551,7 +2535,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2580,7 +2563,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer @@ -2621,12 +2603,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray.fromArray (param $0 i32) (result i32) (local $1 i32) @@ -2721,12 +2701,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2989,12 +2967,10 @@ local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#slice<~lib/staticarray/StaticArray<~lib/string/String>> - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3727,12 +3703,10 @@ local.get $1 local.get $2 call $~lib/staticarray/StaticArray#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinStringArray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -3989,12 +3963,10 @@ local.get $2 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/staticarray/StaticArray#filter (param $0 i32) (result i32) (local $1 i32) @@ -4012,236 +3984,233 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 7 - i32.const 0 - call $~lib/rt/__newArray - local.tee $10 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 2 - i32.shr_u - local.set $7 - loop $for-loop|0 - local.get $7 + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 7 + i32.const 0 + call $~lib/rt/__newArray + local.tee $10 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 2 + i32.shr_u + local.set $7 + loop $for-loop|0 + local.get $7 + local.get $9 + i32.gt_s + if + local.get $0 local.get $9 - i32.gt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 3 + global.set $~argumentsLength + local.get $8 + local.get $9 + local.get $0 + i32.const 3472 + i32.load + call_indirect (type $1) if - local.get $0 - local.get $9 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $10 i32.store offset=4 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $9 - local.get $0 - i32.const 3472 - i32.load - call_indirect (type $1) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.load offset=12 + local.tee $6 + i32.const 1 + i32.add + local.tee $5 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 3960 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $3 + local.get $10 + i32.load offset=8 + local.tee $1 + i32.const 2 + i32.shr_u + i32.gt_u if - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=12 - local.tee $6 - i32.const 1 - i32.add - local.tee $5 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 3960 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store local.get $3 - local.get $10 - i32.load offset=8 - local.tee $1 - i32.const 2 - i32.shr_u + i32.const 268435455 i32.gt_u if + i32.const 1680 + i32.const 1776 + i32.const 19 + i32.const 48 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + block $__inlined_func$~lib/rt/itcms/__renew$224 + i32.const 1073741820 + local.get $1 + i32.const 1 + i32.shl + local.tee $1 + local.get $1 + i32.const 1073741820 + i32.ge_u + select + local.tee $2 + i32.const 8 local.get $3 - i32.const 268435455 - i32.gt_u - if - i32.const 1680 - i32.const 1776 - i32.const 19 - i32.const 48 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + local.get $3 + i32.const 8 + i32.le_u + select + i32.const 2 + i32.shl + local.tee $1 + local.get $1 + local.get $2 + i32.lt_u + select + local.tee $4 local.get $10 - i32.store - block $__inlined_func$~lib/rt/itcms/__renew$224 - i32.const 1073741820 - local.get $1 - i32.const 1 - i32.shl - local.tee $1 - local.get $1 - i32.const 1073741820 - i32.ge_u - select - local.tee $2 - i32.const 8 - local.get $3 + i32.load + local.tee $1 + i32.const 20 + i32.sub + local.tee $3 + i32.load + i32.const -4 + i32.and + i32.const 16 + i32.sub + i32.le_u + if local.get $3 - i32.const 8 - i32.le_u - select - i32.const 2 - i32.shl - local.tee $1 - local.get $1 - local.get $2 - i32.lt_u - select - local.tee $4 - local.get $10 - i32.load - local.tee $1 - i32.const 20 - i32.sub - local.tee $3 - i32.load - i32.const -4 - i32.and - i32.const 16 - i32.sub - i32.le_u - if - local.get $3 - local.get $4 - i32.store offset=16 - local.get $1 - local.set $2 - br $__inlined_func$~lib/rt/itcms/__renew$224 - end local.get $4 - local.get $3 - i32.load offset=12 - call $~lib/rt/itcms/__new - local.tee $2 + i32.store offset=16 local.get $1 - local.get $4 - local.get $3 - i32.load offset=16 - local.tee $3 - local.get $3 - local.get $4 - i32.gt_u - select - memory.copy + local.set $2 + br $__inlined_func$~lib/rt/itcms/__renew$224 end + local.get $4 + local.get $3 + i32.load offset=12 + call $~lib/rt/itcms/__new + local.tee $2 local.get $1 + local.get $4 + local.get $3 + i32.load offset=16 + local.tee $3 + local.get $3 + local.get $4 + i32.gt_u + select + memory.copy + end + local.get $1 + local.get $2 + i32.ne + if + local.get $10 local.get $2 - i32.ne - if - local.get $10 - local.get $2 - i32.store - local.get $10 - local.get $2 - i32.store offset=4 - local.get $10 - local.get $2 - i32.const 0 - call $~lib/rt/itcms/__link - end + i32.store local.get $10 - local.get $4 - i32.store offset=8 + local.get $2 + i32.store offset=4 + local.get $10 + local.get $2 + i32.const 0 + call $~lib/rt/itcms/__link end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store - local.get $10 - i32.load offset=4 - local.get $6 - i32.const 2 - i32.shl - i32.add - local.get $8 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $10 - i32.store local.get $10 - local.get $5 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $4 + i32.store offset=8 end - local.get $9 - i32.const 1 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + i32.load offset=4 + local.get $6 + i32.const 2 + i32.shl i32.add - local.set $9 - br $for-loop|0 + local.get $8 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $10 + i32.store + local.get $10 + local.get $5 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer end + local.get $9 + i32.const 1 + i32.add + local.set $9 + br $for-loop|0 end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $10 - return end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $10 + return end i32.const 36752 i32.const 36800 @@ -4293,13 +4262,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4369,13 +4336,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4446,13 +4411,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -4523,13 +4486,11 @@ i32.shl i32.add i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store i32.const 3 global.set $~argumentsLength - local.get $3 local.get $2 local.get $0 local.get $1 @@ -5320,7 +5281,6 @@ i32.const 0 global.set $std/staticarray/arr4 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer i32.const 4 i32.sub @@ -5342,7 +5302,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $6 i32.store offset=8 global.get $~lib/memory/__stack_pointer @@ -5478,7 +5437,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 7 i32.const 1824 @@ -5487,7 +5445,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 call $~lib/staticarray/StaticArray.fromArray local.tee $0 @@ -5510,7 +5467,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new @@ -5518,14 +5474,12 @@ i32.const 1856 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=20 global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 4 i32.const 4 call $~lib/rt/itcms/__new @@ -5536,7 +5490,6 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=24 - local.get $0 local.get $1 local.get $5 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> @@ -5565,7 +5518,6 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 4 call $~lib/rt/itcms/__new @@ -5576,7 +5528,6 @@ global.get $~lib/memory/__stack_pointer local.get $5 i32.store offset=24 - local.get $0 local.get $1 local.get $5 call $~lib/staticarray/StaticArray#concat<~lib/staticarray/StaticArray> @@ -5591,11 +5542,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -5612,7 +5561,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 8 call $~lib/rt/itcms/__new @@ -5620,11 +5568,9 @@ i32.const 2016 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=32 global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $1 i32.store @@ -5761,7 +5707,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $8 i32.store offset=36 global.get $~lib/memory/__stack_pointer @@ -5784,7 +5729,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -5792,7 +5736,6 @@ i32.const 2288 i32.const 20 memory.copy - local.get $0 local.get $2 i32.store offset=40 global.get $~lib/memory/__stack_pointer @@ -5815,11 +5758,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $1 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $1 local.get $2 i32.const 20 i32.sub @@ -5988,11 +5929,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 i32.const 20 i32.sub @@ -6029,11 +5968,9 @@ i32.load offset=16 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer local.get $2 i32.store - local.get $0 local.get $2 i32.const 20 i32.sub @@ -6214,7 +6151,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -6222,14 +6158,12 @@ i32.const 2464 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=52 global.get $~lib/memory/__stack_pointer local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 0 i32.const 9 i32.const 2512 @@ -6238,7 +6172,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=24 - local.get $0 local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> @@ -6249,11 +6182,9 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -6273,7 +6204,6 @@ local.get $1 i32.store global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 1 i32.const 9 i32.const 2576 @@ -6282,7 +6212,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=24 - local.get $0 local.get $1 local.get $2 call $~lib/staticarray/StaticArray<~lib/string/String>#concat<~lib/array/Array<~lib/string/String>> @@ -6293,11 +6222,9 @@ i32.store local.get $0 call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $0 local.get $1 i32.const 20 i32.sub @@ -6316,7 +6243,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 8 call $~lib/rt/itcms/__new @@ -6324,7 +6250,6 @@ i32.const 2608 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=60 global.get $~lib/memory/__stack_pointer @@ -6578,7 +6503,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -6586,7 +6510,6 @@ i32.const 2720 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=64 global.get $~lib/memory/__stack_pointer @@ -6671,7 +6594,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -6679,7 +6601,6 @@ i32.const 2752 i32.const 16 memory.copy - local.get $0 local.get $1 i32.store offset=68 global.get $~lib/memory/__stack_pointer @@ -6783,7 +6704,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 8 call $~lib/rt/itcms/__new @@ -6791,7 +6711,6 @@ i32.const 2896 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=72 global.get $~lib/memory/__stack_pointer @@ -6963,7 +6882,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 8 i32.const 4 call $~lib/rt/itcms/__new @@ -6971,7 +6889,6 @@ i32.const 3264 i64.load align=1 i64.store align=1 - local.get $0 local.get $1 i32.store offset=80 global.get $~lib/memory/__stack_pointer @@ -7078,7 +6995,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -7086,7 +7002,6 @@ i32.const 3296 i32.const 12 memory.copy - local.get $0 local.get $1 i32.store offset=84 global.get $~lib/memory/__stack_pointer @@ -7214,7 +7129,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 20 i32.const 4 call $~lib/rt/itcms/__new @@ -7222,7 +7136,6 @@ i32.const 3328 i32.const 20 memory.copy - local.get $0 local.get $1 i32.store offset=88 global.get $~lib/memory/__stack_pointer @@ -7392,7 +7305,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 12 i32.const 4 call $~lib/rt/itcms/__new @@ -7400,11 +7312,9 @@ i32.const 3376 i32.const 12 memory.copy - local.get $0 local.get $2 i32.store offset=92 global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $2 i32.store @@ -7485,7 +7395,6 @@ i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $6 i32.store offset=96 global.get $~lib/memory/__stack_pointer @@ -7576,13 +7485,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $2 i32.store i32.const 3 global.set $~argumentsLength - local.get $5 local.get $1 local.get $2 i32.const 3440 @@ -7971,7 +7878,6 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.set $0 i32.const 16 i32.const 4 call $~lib/rt/itcms/__new @@ -7979,7 +7885,6 @@ i32.const 3824 i32.const 16 memory.copy - local.get $0 local.get $1 i32.store offset=104 global.get $~lib/memory/__stack_pointer @@ -8178,7 +8083,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -8193,7 +8097,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/std/string-casemapping.debug.wat b/tests/compiler/std/string-casemapping.debug.wat index 82256a31b4..21f3389d96 100644 --- a/tests/compiler/std/string-casemapping.debug.wat +++ b/tests/compiler/std/string-casemapping.debug.wat @@ -286,37 +286,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 128 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 128 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -542,22 +540,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -771,27 +767,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -809,28 +803,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1155,27 +1147,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1184,37 +1174,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1304,7 +1292,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1373,15 +1360,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1450,15 +1435,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1466,21 +1449,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1488,27 +1469,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1677,39 +1656,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1728,31 +1705,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2569,14 +2544,27 @@ i32.const 8 i32.shr_u local.set $xb - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $xn + if local.get $xn + i32.const 1 + i32.shr_u + local.set $h + i32.const 5572 + local.get $xb + local.get $h + i32.add + i32.const 2 + i32.mul + i32.add + i32.load8_u + local.set $t + local.get $t + local.get $c + i32.eq if - local.get $xn - i32.const 1 - i32.shr_u - local.set $h + i32.const 4100 i32.const 5572 local.get $xb local.get $h @@ -2584,77 +2572,62 @@ i32.const 2 i32.mul i32.add - i32.load8_u - local.set $t + i32.load8_u offset=1 + i32.const 2 + i32.shl + i32.add + i32.load + local.set $r + local.get $r + i32.const 255 + i32.and + local.set $rt + local.get $r + i32.const 8 + i32.shr_s + local.set $rd + local.get $rt + i32.const 2 + i32.lt_u + if + local.get $c0 + local.get $rd + i32.const 0 + local.get $rt + local.get $dir + i32.xor + i32.sub + i32.and + i32.add + return + end + local.get $c0 + i32.const 1 + i32.add + local.get $dir + i32.const 1 + i32.shl + i32.sub + return + else local.get $t local.get $c - i32.eq + i32.gt_u if - i32.const 4100 - i32.const 5572 + local.get $h + local.set $xn + else local.get $xb local.get $h i32.add - i32.const 2 - i32.mul - i32.add - i32.load8_u offset=1 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $r - local.get $r - i32.const 255 - i32.and - local.set $rt - local.get $r - i32.const 8 - i32.shr_s - local.set $rd - local.get $rt - i32.const 2 - i32.lt_u - if - local.get $c0 - local.get $rd - i32.const 0 - local.get $rt - local.get $dir - i32.xor - i32.sub - i32.and - i32.add - return - end - local.get $c0 - i32.const 1 - i32.add - local.get $dir - i32.const 1 - i32.shl + local.set $xb + local.get $xn + local.get $h i32.sub - return - else - local.get $t - local.get $c - i32.gt_u - if - local.get $h - local.set $xn - else - local.get $xb - local.get $h - i32.add - local.set $xb - local.get $xn - local.get $h - i32.sub - local.set $xn - end + local.set $xn end - br $while-continue|0 end + br $while-continue|0 end end local.get $c0 @@ -2777,40 +2750,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2909,61 +2880,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 18188 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 18188 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -3109,109 +3078,107 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i64.const 100000000 + i64.ge_u + if local.get $num i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t - local.get $num - local.get $t - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 18188 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 18188 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 18188 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 18188 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 18188 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 18188 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $buffer @@ -3221,37 +3188,35 @@ call $~lib/util/number/utoa32_dec_lut ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 18608 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 18608 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -3305,44 +3270,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -3484,7 +3445,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid @@ -3760,53 +3720,51 @@ local.set $max i32.const 0 local.set $min - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $min + local.get $max + i32.le_s + if local.get $min local.get $max - i32.le_s + i32.add + i32.const 3 + i32.shr_u + i32.const 2 + i32.shl + local.set $mid + local.get $ptr + local.get $mid + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $key + i32.sub + local.set $cmp + local.get $cmp + i32.const 0 + i32.eq if - local.get $min - local.get $max - i32.add - i32.const 3 - i32.shr_u - i32.const 2 - i32.shl - local.set $mid - local.get $ptr local.get $mid - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $key - i32.sub - local.set $cmp + br $~lib/util/casemap/bsearch|inlined.0 + else local.get $cmp - i32.const 0 - i32.eq + i32.const 31 + i32.shr_u if local.get $mid - br $~lib/util/casemap/bsearch|inlined.0 + i32.const 4 + i32.add + local.set $min else - local.get $cmp - i32.const 31 - i32.shr_u - if - local.get $mid - i32.const 4 - i32.add - local.set $min - else - local.get $mid - i32.const 4 - i32.sub - local.set $max - end + local.get $mid + i32.const 4 + i32.sub + local.set $max end - br $while-continue|1 end + br $while-continue|1 end end i32.const -1 @@ -4276,137 +4234,135 @@ i32.gt_s select local.set $minPos - block $while-break|1 - loop $while-continue|1 - local.get $pos - local.get $minPos - i32.gt_s - if - block $~lib/util/string/codePointBefore|inlined.0 (result i32) - local.get $buffer - local.set $buffer|19 - local.get $pos - local.set $index|20 - local.get $index|20 - i32.const 0 - i32.le_s - if - i32.const -1 - br $~lib/util/string/codePointBefore|inlined.0 - end + loop $while-continue|1 + local.get $pos + local.get $minPos + i32.gt_s + if + block $~lib/util/string/codePointBefore|inlined.0 (result i32) + local.get $buffer + local.set $buffer|19 + local.get $pos + local.set $index|20 + local.get $index|20 + i32.const 0 + i32.le_s + if + i32.const -1 + br $~lib/util/string/codePointBefore|inlined.0 + end + local.get $buffer|19 + local.get $index|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $c|21 + local.get $c|21 + i32.const 64512 + i32.and + i32.const 56320 + i32.eq + local.get $index|20 + i32.const 2 + i32.sub + i32.const 0 + i32.ge_s + i32.and + if local.get $buffer|19 local.get $index|20 - i32.const 1 + i32.const 2 i32.sub i32.const 1 i32.shl i32.add i32.load16_u - local.set $c|21 - local.get $c|21 + local.set $c1|22 + local.get $c1|22 i32.const 64512 i32.and - i32.const 56320 + i32.const 55296 i32.eq - local.get $index|20 - i32.const 2 - i32.sub - i32.const 0 - i32.ge_s - i32.and if - local.get $buffer|19 - local.get $index|20 - i32.const 2 - i32.sub - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $c1|22 local.get $c1|22 - i32.const 64512 + i32.const 1023 i32.and - i32.const 55296 - i32.eq - if - local.get $c1|22 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - local.get $c|21 - i32.const 1023 - i32.and - i32.add - i32.const 65536 - i32.add - br $~lib/util/string/codePointBefore|inlined.0 - end - end - local.get $c|21 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq - if (result i32) - i32.const 65533 - else + i32.const 10 + i32.shl local.get $c|21 + i32.const 1023 + i32.and + i32.add + i32.const 65536 + i32.add + br $~lib/util/string/codePointBefore|inlined.0 end - br $~lib/util/string/codePointBefore|inlined.0 end - local.set $c|23 - block $~lib/util/string/isCaseIgnorable|inlined.0 (result i32) - local.get $c|23 - local.set $c|24 + local.get $c|21 + i32.const 63488 + i32.and + i32.const 55296 + i32.eq + if (result i32) + i32.const 65533 + else + local.get $c|21 + end + br $~lib/util/string/codePointBefore|inlined.0 + end + local.set $c|23 + block $~lib/util/string/isCaseIgnorable|inlined.0 (result i32) + local.get $c|23 + local.set $c|24 + local.get $c|24 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 local.get $c|24 - i32.const 918000 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCaseIgnorable|inlined.0 + end + i32.eqz + if + block $~lib/util/string/isCased|inlined.0 (result i32) + local.get $c|23 + local.set $c|25 + local.get $c|25 + i32.const 127370 i32.lt_u if (result i32) - i32.const 6188 - local.get $c|24 + i32.const 9196 + local.get $c|25 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end - br $~lib/util/string/isCaseIgnorable|inlined.0 + br $~lib/util/string/isCased|inlined.0 end - i32.eqz if - block $~lib/util/string/isCased|inlined.0 (result i32) - local.get $c|23 - local.set $c|25 - local.get $c|25 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9196 - local.get $c|25 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - br $~lib/util/string/isCased|inlined.0 - end - if - i32.const 1 - local.set $found - else - i32.const 0 - br $~lib/util/string/isFinalSigma|inlined.0 - end + i32.const 1 + local.set $found + else + i32.const 0 + br $~lib/util/string/isFinalSigma|inlined.0 end - local.get $pos - local.get $c|23 - i32.const 65536 - i32.ge_s - i32.const 1 - i32.add - i32.sub - local.set $pos - br $while-continue|1 end + local.get $pos + local.get $c|23 + i32.const 65536 + i32.ge_s + i32.const 1 + i32.add + i32.sub + local.set $pos + br $while-continue|1 end end local.get $found @@ -4430,103 +4386,101 @@ i32.lt_s select local.set $maxPos - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $pos + local.get $maxPos + i32.lt_s + if + local.get $buffer + local.get $pos + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $c|29 + local.get $c|29 + i32.const 64512 + i32.and + i32.const 55296 + i32.eq local.get $pos - local.get $maxPos - i32.lt_s + i32.const 1 + i32.add + local.get $len|13 + i32.ne + i32.and if local.get $buffer local.get $pos i32.const 1 i32.shl i32.add - i32.load16_u - local.set $c|29 - local.get $c|29 + i32.load16_u offset=2 + local.set $c1|30 + local.get $c1|30 i32.const 64512 i32.and - i32.const 55296 + i32.const 56320 i32.eq - local.get $pos - i32.const 1 - i32.add - local.get $len|13 - i32.ne - i32.and if - local.get $buffer - local.get $pos - i32.const 1 + local.get $c|29 + i32.const 55296 + i32.sub + i32.const 10 i32.shl - i32.add - i32.load16_u offset=2 - local.set $c1|30 local.get $c1|30 - i32.const 64512 - i32.and i32.const 56320 - i32.eq - if - local.get $c|29 - i32.const 55296 - i32.sub - i32.const 10 - i32.shl - local.get $c1|30 - i32.const 56320 - i32.sub - i32.add - i32.const 65536 - i32.add - local.set $c|29 - end + i32.sub + i32.add + i32.const 65536 + i32.add + local.set $c|29 end - block $~lib/util/string/isCaseIgnorable|inlined.1 (result i32) - local.get $c|29 - local.set $c|31 + end + block $~lib/util/string/isCaseIgnorable|inlined.1 (result i32) + local.get $c|29 + local.set $c|31 + local.get $c|31 + i32.const 918000 + i32.lt_u + if (result i32) + i32.const 6188 local.get $c|31 - i32.const 918000 + call $~lib/util/string/stagedBinaryLookup + else + i32.const 0 + end + br $~lib/util/string/isCaseIgnorable|inlined.1 + end + i32.eqz + if + block $~lib/util/string/isCased|inlined.1 (result i32) + local.get $c|29 + local.set $c|32 + local.get $c|32 + i32.const 127370 i32.lt_u if (result i32) - i32.const 6188 - local.get $c|31 + i32.const 9196 + local.get $c|32 call $~lib/util/string/stagedBinaryLookup else i32.const 0 end - br $~lib/util/string/isCaseIgnorable|inlined.1 + br $~lib/util/string/isCased|inlined.1 end i32.eqz - if - block $~lib/util/string/isCased|inlined.1 (result i32) - local.get $c|29 - local.set $c|32 - local.get $c|32 - i32.const 127370 - i32.lt_u - if (result i32) - i32.const 9196 - local.get $c|32 - call $~lib/util/string/stagedBinaryLookup - else - i32.const 0 - end - br $~lib/util/string/isCased|inlined.1 - end - i32.eqz - br $~lib/util/string/isFinalSigma|inlined.0 - end - local.get $pos - local.get $c|29 - i32.const 65536 - i32.ge_u - i32.const 1 - i32.add - i32.add - local.set $pos - br $while-continue|2 + br $~lib/util/string/isFinalSigma|inlined.0 end + local.get $pos + local.get $c|29 + i32.const 65536 + i32.ge_u + i32.const 1 + i32.add + i32.add + local.set $pos + br $while-continue|2 end end i32.const 1 @@ -7718,24 +7672,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -7750,24 +7702,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -7794,24 +7744,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix diff --git a/tests/compiler/std/string-casemapping.release.wat b/tests/compiler/std/string-casemapping.release.wat index 617fc04b1e..907c9e971e 100644 --- a/tests/compiler/std/string-casemapping.release.wat +++ b/tests/compiler/std/string-casemapping.release.wat @@ -1481,7 +1481,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1514,7 +1513,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2626,12 +2624,10 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3356,12 +3352,10 @@ i32.const 1 i32.shl call $~lib/rt/itcms/__renew - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#codePointAt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) diff --git a/tests/compiler/std/string-encoding.debug.wat b/tests/compiler/std/string-encoding.debug.wat index 42684945d9..8bc24bd177 100644 --- a/tests/compiler/std/string-encoding.debug.wat +++ b/tests/compiler/std/string-encoding.debug.wat @@ -125,37 +125,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 192 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 192 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -381,22 +379,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -610,27 +606,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -648,28 +642,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -994,27 +986,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1023,37 +1013,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1143,7 +1131,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1212,15 +1199,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1289,15 +1274,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1305,21 +1288,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1327,27 +1308,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1516,39 +1495,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1567,31 +1544,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2396,40 +2371,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2560,220 +2533,218 @@ local.set $strEnd local.get $buf local.set $bufOff - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $str + local.get $strEnd + i32.lt_u + if local.get $str - local.get $strEnd + i32.load16_u + local.set $c1 + local.get $c1 + i32.const 128 i32.lt_u if - local.get $str - i32.load16_u - local.set $c1 + local.get $bufOff local.get $c1 - i32.const 128 - i32.lt_u + i32.store8 + local.get $bufOff + i32.const 1 + i32.add + local.set $bufOff + local.get $nullTerminated + local.get $c1 + i32.eqz + i32.and if local.get $bufOff + local.get $buf + i32.sub + return + end + else + local.get $c1 + i32.const 2048 + i32.lt_u + if local.get $c1 - i32.store8 + i32.const 6 + i32.shr_u + i32.const 192 + i32.or + local.set $b0 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1 local.get $bufOff - i32.const 1 + local.get $b1 + i32.const 8 + i32.shl + local.get $b0 + i32.or + i32.store16 + local.get $bufOff + i32.const 2 i32.add local.set $bufOff - local.get $nullTerminated - local.get $c1 - i32.eqz - i32.and - if - local.get $bufOff - local.get $buf - i32.sub - return - end else local.get $c1 - i32.const 2048 - i32.lt_u + i32.const 63488 + i32.and + i32.const 55296 + i32.eq if local.get $c1 - i32.const 6 - i32.shr_u - i32.const 192 - i32.or - local.set $b0 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1 - local.get $bufOff - local.get $b1 - i32.const 8 - i32.shl - local.get $b0 - i32.or - i32.store16 - local.get $bufOff - i32.const 2 - i32.add - local.set $bufOff - else - local.get $c1 - i32.const 63488 - i32.and - i32.const 55296 - i32.eq + i32.const 56320 + i32.lt_u + if (result i32) + local.get $str + i32.const 2 + i32.add + local.get $strEnd + i32.lt_u + else + i32.const 0 + end if - local.get $c1 + local.get $str + i32.load16_u offset=2 + local.set $c2 + local.get $c2 + i32.const 64512 + i32.and i32.const 56320 - i32.lt_u - if (result i32) - local.get $str - i32.const 2 - i32.add - local.get $strEnd - i32.lt_u - else - i32.const 0 - end + i32.eq if - local.get $str - i32.load16_u offset=2 - local.set $c2 + i32.const 65536 + local.get $c1 + i32.const 1023 + i32.and + i32.const 10 + i32.shl + i32.add local.get $c2 - i32.const 64512 + i32.const 1023 i32.and - i32.const 56320 - i32.eq - if - i32.const 65536 - local.get $c1 - i32.const 1023 - i32.and - i32.const 10 - i32.shl - i32.add - local.get $c2 - i32.const 1023 - i32.and - i32.or - local.set $c1 - local.get $c1 - i32.const 18 - i32.shr_u - i32.const 240 - i32.or - local.set $b0|11 - local.get $c1 - i32.const 12 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1|12 - local.get $c1 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b2 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b3 - local.get $bufOff - local.get $b3 - i32.const 24 - i32.shl - local.get $b2 - i32.const 16 - i32.shl - i32.or - local.get $b1|12 - i32.const 8 - i32.shl - i32.or - local.get $b0|11 - i32.or - i32.store - local.get $bufOff - i32.const 4 - i32.add - local.set $bufOff - local.get $str - i32.const 4 - i32.add - local.set $str - br $while-continue|0 - end + i32.or + local.set $c1 + local.get $c1 + i32.const 18 + i32.shr_u + i32.const 240 + i32.or + local.set $b0|11 + local.get $c1 + i32.const 12 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1|12 + local.get $c1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b2 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b3 + local.get $bufOff + local.get $b3 + i32.const 24 + i32.shl + local.get $b2 + i32.const 16 + i32.shl + i32.or + local.get $b1|12 + i32.const 8 + i32.shl + i32.or + local.get $b0|11 + i32.or + i32.store + local.get $bufOff + i32.const 4 + i32.add + local.set $bufOff + local.get $str + i32.const 4 + i32.add + local.set $str + br $while-continue|0 end + end + local.get $errorMode + i32.const 0 + i32.ne + if local.get $errorMode - i32.const 0 - i32.ne + i32.const 2 + i32.eq if - local.get $errorMode - i32.const 2 - i32.eq - if - i32.const 688 - i32.const 752 - i32.const 742 - i32.const 49 - call $~lib/builtins/abort - unreachable - end - i32.const 65533 - local.set $c1 + i32.const 688 + i32.const 752 + i32.const 742 + i32.const 49 + call $~lib/builtins/abort + unreachable end + i32.const 65533 + local.set $c1 end - local.get $c1 - i32.const 12 - i32.shr_u - i32.const 224 - i32.or - local.set $b0|15 - local.get $c1 - i32.const 6 - i32.shr_u - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b1|16 - local.get $c1 - i32.const 63 - i32.and - i32.const 128 - i32.or - local.set $b2|17 - local.get $bufOff - local.get $b1|16 - i32.const 8 - i32.shl - local.get $b0|15 - i32.or - i32.store16 - local.get $bufOff - local.get $b2|17 - i32.store8 offset=2 - local.get $bufOff - i32.const 3 - i32.add - local.set $bufOff end + local.get $c1 + i32.const 12 + i32.shr_u + i32.const 224 + i32.or + local.set $b0|15 + local.get $c1 + i32.const 6 + i32.shr_u + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b1|16 + local.get $c1 + i32.const 63 + i32.and + i32.const 128 + i32.or + local.set $b2|17 + local.get $bufOff + local.get $b1|16 + i32.const 8 + i32.shl + local.get $b0|15 + i32.or + i32.store16 + local.get $bufOff + local.get $b2|17 + i32.store8 offset=2 + local.get $bufOff + i32.const 3 + i32.add + local.set $bufOff end - local.get $str - i32.const 2 - i32.add - local.set $str - br $while-continue|0 end + local.get $str + i32.const 2 + i32.add + local.set $str + br $while-continue|0 end end local.get $nullTerminated @@ -2862,16 +2833,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -2924,7 +2893,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/string-encoding.release.wat b/tests/compiler/std/string-encoding.release.wat index 95fabaa572..d0b260e91e 100644 --- a/tests/compiler/std/string-encoding.release.wat +++ b/tests/compiler/std/string-encoding.release.wat @@ -1068,7 +1068,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1101,7 +1100,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1692,968 +1690,957 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1052 + i32.load + i32.const 12 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1052 - i32.load - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 8 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - memory.size - i32.const 16 - i32.shl - i32.const 55572 - i32.sub - i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1268 - i32.const 1264 - i32.store - i32.const 1272 - i32.const 1264 - i32.store - i32.const 1264 - global.set $~lib/rt/itcms/pinSpace - i32.const 1300 - i32.const 1296 - i32.store - i32.const 1304 - i32.const 1296 - i32.store - i32.const 1296 - global.set $~lib/rt/itcms/toSpace - i32.const 1444 - i32.const 1440 - i32.store - i32.const 1448 - i32.const 1440 - i32.store - i32.const 1440 - global.set $~lib/rt/itcms/fromSpace - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 16 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 17 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 55 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 18 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 220 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 19 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 20 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - if - i32.const 0 - i32.const 1088 - i32.const 21 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - if - i32.const 0 - i32.const 1088 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 82 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 216 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 25 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=10 - i32.const 98 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 26 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=11 - i32.const 223 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 27 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 1088 i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - call $~lib/string/String.UTF16.encode - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/string/String.UTF16.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 33 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF16DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + memory.size + i32.const 16 + i32.shl + i32.const 55572 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1268 + i32.const 1264 + i32.store + i32.const 1272 + i32.const 1264 + i32.store + i32.const 1264 + global.set $~lib/rt/itcms/pinSpace + i32.const 1300 + i32.const 1296 + i32.store + i32.const 1304 + i32.const 1296 + i32.store + i32.const 1296 + global.set $~lib/rt/itcms/toSpace + i32.const 1444 + i32.const 1440 + i32.store + i32.const 1448 + i32.const 1440 + i32.store + i32.const 1440 + global.set $~lib/rt/itcms/fromSpace + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 12 + i32.ne + if i32.const 0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 + i32.const 1088 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 1 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.byteLength - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 55 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 11 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 56 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 1088 + i32.const 16 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 216 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 10 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 63 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 64 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=1 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 65 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=2 - i32.const 144 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 66 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=3 - i32.const 183 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 67 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=4 - i32.const 104 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 68 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=5 - i32.const 105 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 69 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=6 - i32.const 240 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 70 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=7 - i32.const 164 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 71 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=8 - i32.const 173 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 72 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - local.get $0 - i32.load8_u offset=9 - i32.const 162 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 73 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8EncodeNullTerminated - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.const 17 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 55 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - i32.const 1904 + i32.const 1088 + i32.const 18 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 220 + i32.ne + if i32.const 0 + i32.const 1088 + i32.const 19 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 + i32.const 1088 + i32.const 20 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - local.get $0 - i32.const 1904 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 101 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1904 - i32.store offset=4 - i32.const 1904 + i32.const 1088 + i32.const 21 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 105 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 + i32.const 1088 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - i32.const 1968 + i32.const 1088 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 82 + i32.ne + if i32.const 0 + i32.const 1088 + i32.const 24 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 216 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 + i32.const 1088 + i32.const 25 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=10 + i32.const 98 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - local.get $0 - i32.const 1968 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 1968 - i32.store offset=4 - i32.const 1968 + i32.const 1088 + i32.const 26 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=11 + i32.const 223 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/string/String.UTF8.encode - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - local.get $0 - local.get $1 + i32.const 1088 + i32.const 27 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + call $~lib/string/String.UTF16.encode + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/string/String.UTF16.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 33 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF16DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.byteLength + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 55 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 11 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 56 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 10 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 63 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 64 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=1 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 65 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=2 + i32.const 144 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 66 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=3 + i32.const 183 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 67 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=4 + i32.const 104 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 68 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=5 + i32.const 105 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 69 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=6 + i32.const 240 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 70 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=7 + i32.const 164 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 71 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=8 + i32.const 173 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 72 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + local.get $0 + i32.load8_u offset=9 + i32.const 162 + i32.ne + if + i32.const 0 + i32.const 1088 + i32.const 73 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8EncodeNullTerminated + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + i32.const 1904 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + local.get $0 + i32.const 1904 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 101 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1904 + i32.store offset=4 + i32.const 1904 + i32.const 0 + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1936 + i32.store offset=4 + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + i32.const 1968 + i32.const 0 + i32.const 0 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + local.get $0 + i32.const 1968 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 1968 + i32.store offset=4 + i32.const 1968 + i32.const 0 + i32.const 1 + call $~lib/string/String.UTF8.encode + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + local.get $1 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1936 + i32.store offset=4 + local.get $0 + i32.const 1936 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 108 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 0 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1088 + i32.const 114 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 22804 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + local.get $0 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.tee $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1936 - i32.store offset=4 - local.get $0 - i32.const 1936 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 108 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 + i32.const 1088 + i32.const 120 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 + i32.const 1088 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 1 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + local.get $0 + i32.const 20 + i32.sub + i32.load offset=16 + i32.const 4 + i32.ne + if i32.const 0 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 114 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 22804 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store + i32.const 2048 + i32.const 1 + call $~lib/string/String.UTF8.byteLength + i32.const 4 + i32.ne + if i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - local.get $0 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 120 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.const 1 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - local.get $0 - i32.const 20 - i32.sub - i32.load offset=16 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store - i32.const 2048 - i32.const 1 - call $~lib/string/String.UTF8.byteLength - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1088 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 127 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 2000 - i32.store - i32.const 2 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 2000 + i32.const 1088 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $~lib/string/String.UTF8.encode@varargs - local.tee $0 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - i32.const 1 - call $~lib/string/String.UTF8.decode - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2048 - i32.store offset=8 - local.get $0 - i32.const 2048 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1088 - i32.const 129 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - call $std/string-encoding/testUTF8DecodeUnsafe - global.get $~lib/memory/__stack_pointer - i32.const 2112 - i32.store - i32.const 2112 - call $std/string-encoding/testRoundtrip - global.get $~lib/memory/__stack_pointer - i32.const 15232 - i32.store - i32.const 15232 - call $std/string-encoding/testRoundtrip - global.get $~lib/rt/itcms/state + i32.const 1088 + i32.const 127 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.store + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 2000 + i32.const 0 + call $~lib/string/String.UTF8.encode@varargs + local.tee $0 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + i32.const 1 + call $~lib/string/String.UTF8.decode + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2048 + i32.store offset=8 + local.get $0 + i32.const 2048 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.gt_s - if - loop $while-continue|0 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|0 - end - end - end - call $~lib/rt/itcms/step - drop - loop $while-continue|1 + i32.const 1088 + i32.const 129 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + call $std/string-encoding/testUTF8DecodeUnsafe + global.get $~lib/memory/__stack_pointer + i32.const 2112 + i32.store + i32.const 2112 + call $std/string-encoding/testRoundtrip + global.get $~lib/memory/__stack_pointer + i32.const 15232 + i32.store + i32.const 15232 + call $std/string-encoding/testRoundtrip + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|0 global.get $~lib/rt/itcms/state if call $~lib/rt/itcms/step drop - br $while-continue|1 + br $while-continue|0 end end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - return end - unreachable + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 + end + end + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 55600 i32.const 55648 @@ -2740,12 +2727,10 @@ i32.sub i32.load offset=16 call $~lib/string/String.UTF16.decodeUnsafe - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3399,12 +3384,10 @@ local.get $1 i32.const 0 call $~lib/string/String.UTF8.encode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/string-encoding/testUTF8EncodeNullTerminated (local $0 i32) @@ -3659,12 +3642,10 @@ i32.load offset=16 local.get $1 call $~lib/string/String.UTF8.decodeUnsafe - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/string-encoding/testUTF8DecodeUnsafe (local $0 i32) diff --git a/tests/compiler/std/string-nonnull.debug.wat b/tests/compiler/std/string-nonnull.debug.wat index 3498786725..9e74fc89e8 100644 --- a/tests/compiler/std/string-nonnull.debug.wat +++ b/tests/compiler/std/string-nonnull.debug.wat @@ -98,40 +98,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -385,7 +383,6 @@ i32.const 0 call $~lib/string/String.__eq if - nop else local.get $0 local.set $1 @@ -405,7 +402,6 @@ i32.const 0 call $~lib/string/String.__eq if - nop else local.get $0 local.set $1 @@ -424,7 +420,6 @@ local.get $1 call $~lib/string/String.__not if - nop else local.get $0 local.set $1 diff --git a/tests/compiler/std/string-nonnull.release.wat b/tests/compiler/std/string-nonnull.release.wat index c4efea7937..63edc700be 100644 --- a/tests/compiler/std/string-nonnull.release.wat +++ b/tests/compiler/std/string-nonnull.release.wat @@ -104,12 +104,10 @@ i32.const 1 i32.shr_u i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if global.get $~lib/memory/__stack_pointer @@ -185,11 +183,9 @@ i32.store offset=4 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/std/string.debug.wat b/tests/compiler/std/string.debug.wat index 6e314553b2..957f42687b 100644 --- a/tests/compiler/std/string.debug.wat +++ b/tests/compiler/std/string.debug.wat @@ -636,40 +636,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -725,37 +723,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 416 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 416 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -981,22 +977,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -1210,27 +1204,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -1248,28 +1240,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1594,27 +1584,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1623,37 +1611,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1743,7 +1729,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1812,15 +1797,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1889,15 +1872,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1905,21 +1886,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1927,27 +1906,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -2116,39 +2093,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -2167,31 +2142,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -3019,24 +2992,22 @@ local.get $count i32.mul local.set $total - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $total + i32.lt_u + if + local.get $dst local.get $index - local.get $total - i32.lt_u - if - local.get $dst - local.get $index - i32.add - local.get $src - local.get $srcLength - memory.copy - local.get $index - local.get $srcLength - i32.add - local.set $index - br $while-continue|0 - end + i32.add + local.get $src + local.get $srcLength + memory.copy + local.get $index + local.get $srcLength + i32.add + local.set $index + br $while-continue|0 end end ) @@ -3319,29 +3290,27 @@ end end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $e + if local.get $e + i32.const 1 + i32.and if - local.get $e - i32.const 1 - i32.and - if - local.get $out - local.get $x - i32.mul - local.set $out - end - local.get $e - i32.const 1 - i32.shr_u - local.set $e - local.get $x + local.get $out local.get $x i32.mul - local.set $x - br $while-continue|1 + local.set $out end + local.get $e + i32.const 1 + i32.shr_u + local.set $e + local.get $x + local.get $x + i32.mul + local.set $x + br $while-continue|1 end end local.get $out @@ -3601,61 +3570,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 15196 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 15196 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -3732,37 +3699,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 15616 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 15616 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -3816,44 +3781,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -4022,109 +3983,107 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i64.const 100000000 + i64.ge_u + if local.get $num i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t - local.get $num - local.get $t - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 15196 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 15196 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 15196 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 15196 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 15196 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 15196 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $buffer @@ -4196,454 +4155,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 23248 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 23248 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 23248 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 23248 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -4868,22 +4814,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.4 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -4949,22 +4893,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.5 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -5148,115 +5090,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 22376 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 23072 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 22376 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 23072 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -5544,16 +5482,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -5626,7 +5562,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/array/Array#get:buffer (param $this i32) (result i32) local.get $this @@ -7111,27 +7046,25 @@ local.set $size i32.const 0 local.set $offset - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + local.get $size + i32.lt_u + if (result i32) + local.get $this local.get $offset - local.get $size - i32.lt_u - if (result i32) - local.get $this - local.get $offset - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $offset - i32.const 2 - i32.add - local.set $offset - br $while-continue|0 - end + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $offset + i32.const 2 + i32.add + local.set $offset + br $while-continue|0 end end local.get $offset @@ -7208,27 +7141,25 @@ local.set $originalSize local.get $originalSize local.set $size - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $size + if (result i32) + local.get $this local.get $size - if (result i32) - local.get $this - local.get $size - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 - end + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|0 end end local.get $size @@ -7300,57 +7231,53 @@ local.get $len i32.const 1 i32.shl - local.set $size - block $while-break|0 - loop $while-continue|0 - local.get $size - if (result i32) - local.get $this - local.get $size - i32.add - i32.const 2 - i32.sub - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 - end + local.set $size + loop $while-continue|0 + local.get $size + if (result i32) + local.get $this + local.get $size + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|0 end end i32.const 0 local.set $offset - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $offset + local.get $size + i32.lt_u + if (result i32) + local.get $this + local.get $offset + i32.add + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if local.get $offset + i32.const 2 + i32.add + local.set $offset local.get $size - i32.lt_u - if (result i32) - local.get $this - local.get $offset - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $offset - i32.const 2 - i32.add - local.set $offset - local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|1 - end + i32.const 2 + i32.sub + local.set $size + br $while-continue|1 end end local.get $size @@ -7435,54 +7362,50 @@ i32.const 8 i32.gt_u if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $size + if (result i32) + local.get $str + local.get $size + i32.add + i32.const 2 + i32.sub + i32.load16_u + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $size + i32.const 2 + i32.sub + local.set $size + br $while-continue|0 + end + end + local.get $size + i32.const 8 + i32.gt_u + if + loop $while-continue|1 + local.get $offset local.get $size + i32.lt_u if (result i32) local.get $str - local.get $size + local.get $offset i32.add - i32.const 2 - i32.sub i32.load16_u call $~lib/util/string/isSpace else i32.const 0 end if - local.get $size - i32.const 2 - i32.sub - local.set $size - br $while-continue|0 - end - end - end - local.get $size - i32.const 8 - i32.gt_u - if - block $while-break|1 - loop $while-continue|1 local.get $offset - local.get $size - i32.lt_u - if (result i32) - local.get $str - local.get $offset - i32.add - i32.load16_u - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $offset - i32.const 2 - i32.add - local.set $offset - br $while-continue|1 - end + i32.const 2 + i32.add + local.set $offset + br $while-continue|1 end end local.get $size @@ -7564,23 +7487,21 @@ local.get $ptr i32.load16_u local.set $code - block $while-break|0 - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 end end f64.const 1 @@ -7993,28 +7914,26 @@ local.set $code f64.const 1 local.set $sign - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $len + if (result i32) + local.get $code + call $~lib/util/string/isSpace + else + i32.const 0 + end + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code local.get $len - if (result i32) - local.get $code - call $~lib/util/string/isSpace - else - i32.const 0 - end - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 end end local.get $len @@ -8152,24 +8071,22 @@ end local.get $ptr local.set $savedPtr - block $while-break|1 - loop $while-continue|1 - local.get $code - i32.const 48 - i32.eq - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|1 - end + loop $while-continue|1 + local.get $code + i32.const 48 + i32.eq + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|1 end end local.get $len @@ -8471,29 +8388,27 @@ local.set $code|18 end end - block $while-break|4 - loop $while-continue|4 - local.get $code|18 - i32.const 48 - i32.eq + loop $while-continue|4 + local.get $code|18 + i32.const 48 + i32.eq + if + local.get $len|15 + i32.const 1 + i32.sub + local.tee $len|15 + i32.eqz if - local.get $len|15 - i32.const 1 - i32.sub - local.tee $len|15 - i32.eqz - if - i32.const 0 - br $~lib/util/string/parseExp|inlined.0 - end - local.get $ptr|14 - i32.const 2 - i32.add - local.tee $ptr|14 - i32.load16_u - local.set $code|18 - br $while-continue|4 + i32.const 0 + br $~lib/util/string/parseExp|inlined.0 end + local.get $ptr|14 + i32.const 2 + i32.add + local.tee $ptr|14 + i32.load16_u + local.set $code|18 + br $while-continue|4 end end local.get $code|18 @@ -9058,23 +8973,21 @@ local.get $ptr i32.load16_u local.set $code - block $while-break|0 - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 end end i32.const 1 @@ -9438,23 +9351,21 @@ local.get $ptr i32.load16_u local.set $code - block $while-break|0 - loop $while-continue|0 - local.get $code - call $~lib/util/string/isSpace - if - local.get $ptr - i32.const 2 - i32.add - local.tee $ptr - i32.load16_u - local.set $code - local.get $len - i32.const 1 - i32.sub - local.set $len - br $while-continue|0 - end + loop $while-continue|0 + local.get $code + call $~lib/util/string/isSpace + if + local.get $ptr + i32.const 2 + i32.add + local.tee $ptr + i32.load16_u + local.set $code + local.get $len + i32.const 1 + i32.sub + local.set $len + br $while-continue|0 end end i64.const 1 @@ -10695,61 +10606,7 @@ local.get $this local.get $outSize memory.copy - block $while-break|1 - loop $while-continue|1 - local.get $this - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store - local.get $19 - local.get $search - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store offset=4 - local.get $19 - local.get $prev - call $~lib/string/String#indexOf - local.tee $next - i32.const -1 - i32.xor - if - local.get $out|13 - local.get $next - i32.const 1 - i32.shl - i32.add - local.get $replacement - local.get $replaceLen - i32.const 1 - i32.shl - memory.copy - local.get $next - local.get $searchLen - i32.add - local.set $prev - br $while-continue|1 - end - end - end - local.get $out|13 - local.set $19 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $19 - return - end - i32.const 0 - local.set $out|14 - i32.const 0 - local.set $offset|15 - local.get $thisLen - local.set $outSize|16 - block $while-break|2 - loop $while-continue|2 + loop $while-continue|1 local.get $this local.set $19 global.get $~lib/memory/__stack_pointer @@ -10768,68 +10625,8 @@ i32.const -1 i32.xor if - local.get $out|14 - local.set $19 - global.get $~lib/memory/__stack_pointer - local.get $19 - i32.store - local.get $19 - call $~lib/string/String.__not - if - global.get $~lib/memory/__stack_pointer - local.get $thisLen - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out|14 - i32.store offset=16 - end + local.get $out|13 local.get $next - local.get $prev - i32.sub - local.set $chunk - local.get $offset|15 - local.get $chunk - i32.add - local.get $replaceLen - i32.add - local.get $outSize|16 - i32.gt_u - if - local.get $outSize|16 - i32.const 1 - i32.shl - local.set $outSize|16 - global.get $~lib/memory/__stack_pointer - local.get $out|14 - local.get $outSize|16 - i32.const 1 - i32.shl - call $~lib/rt/itcms/__renew - local.tee $out|14 - i32.store offset=16 - end - local.get $out|14 - local.get $offset|15 - i32.const 1 - i32.shl - i32.add - local.get $this - local.get $prev - i32.const 1 - i32.shl - i32.add - local.get $chunk - i32.const 1 - i32.shl - memory.copy - local.get $offset|15 - local.get $chunk - i32.add - local.set $offset|15 - local.get $out|14 - local.get $offset|15 i32.const 1 i32.shl i32.add @@ -10838,16 +10635,126 @@ i32.const 1 i32.shl memory.copy - local.get $offset|15 - local.get $replaceLen - i32.add - local.set $offset|15 local.get $next local.get $searchLen i32.add local.set $prev - br $while-continue|2 + br $while-continue|1 + end + end + local.get $out|13 + local.set $19 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $19 + return + end + i32.const 0 + local.set $out|14 + i32.const 0 + local.set $offset|15 + local.get $thisLen + local.set $outSize|16 + loop $while-continue|2 + local.get $this + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store + local.get $19 + local.get $search + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store offset=4 + local.get $19 + local.get $prev + call $~lib/string/String#indexOf + local.tee $next + i32.const -1 + i32.xor + if + local.get $out|14 + local.set $19 + global.get $~lib/memory/__stack_pointer + local.get $19 + i32.store + local.get $19 + call $~lib/string/String.__not + if + global.get $~lib/memory/__stack_pointer + local.get $thisLen + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out|14 + i32.store offset=16 + end + local.get $next + local.get $prev + i32.sub + local.set $chunk + local.get $offset|15 + local.get $chunk + i32.add + local.get $replaceLen + i32.add + local.get $outSize|16 + i32.gt_u + if + local.get $outSize|16 + i32.const 1 + i32.shl + local.set $outSize|16 + global.get $~lib/memory/__stack_pointer + local.get $out|14 + local.get $outSize|16 + i32.const 1 + i32.shl + call $~lib/rt/itcms/__renew + local.tee $out|14 + i32.store offset=16 end + local.get $out|14 + local.get $offset|15 + i32.const 1 + i32.shl + i32.add + local.get $this + local.get $prev + i32.const 1 + i32.shl + i32.add + local.get $chunk + i32.const 1 + i32.shl + memory.copy + local.get $offset|15 + local.get $chunk + i32.add + local.set $offset|15 + local.get $out|14 + local.get $offset|15 + i32.const 1 + i32.shl + i32.add + local.get $replacement + local.get $replaceLen + i32.const 1 + i32.shl + memory.copy + local.get $offset|15 + local.get $replaceLen + i32.add + local.set $offset|15 + local.get $next + local.get $searchLen + i32.add + local.set $prev + br $while-continue|2 end end local.get $out|14 @@ -11906,104 +11813,102 @@ local.set $start i32.const 0 local.set $i|16 - block $while-break|1 - loop $while-continue|1 - local.get $this - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $separator - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 + loop $while-continue|1 + local.get $this + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $separator + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + local.get $start + call $~lib/string/String#indexOf + local.tee $end + i32.const -1 + i32.xor + if + local.get $end local.get $start - call $~lib/string/String#indexOf - local.tee $end - i32.const -1 - i32.xor - if - local.get $end - local.get $start - i32.sub - local.set $len - local.get $len - i32.const 0 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $len - i32.const 1 - i32.shl - i32.const 2 - call $~lib/rt/itcms/__new - local.tee $out - i32.store offset=28 - local.get $out - local.get $this - local.get $start - i32.const 1 - i32.shl - i32.add - local.get $len - i32.const 1 - i32.shl - memory.copy - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - local.get $out - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - else - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=4 - local.get $21 - i32.const 688 - local.set $21 - global.get $~lib/memory/__stack_pointer - local.get $21 - i32.store offset=24 - local.get $21 - call $~lib/array/Array<~lib/string/String>#push - drop - end - local.get $i|16 + i32.sub + local.set $len + local.get $len + i32.const 0 + i32.gt_s + if + global.get $~lib/memory/__stack_pointer + local.get $len + i32.const 1 + i32.shl + i32.const 2 + call $~lib/rt/itcms/__new + local.tee $out + i32.store offset=28 + local.get $out + local.get $this + local.get $start i32.const 1 + i32.shl i32.add - local.tee $i|16 - local.get $limit - i32.eq - if - local.get $result|13 - local.set $21 - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $21 - return - end - local.get $end - local.get $sepLen + local.get $len + i32.const 1 + i32.shl + memory.copy + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + local.get $out + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + else + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=4 + local.get $21 + i32.const 688 + local.set $21 + global.get $~lib/memory/__stack_pointer + local.get $21 + i32.store offset=24 + local.get $21 + call $~lib/array/Array<~lib/string/String>#push + drop + end + local.get $i|16 + i32.const 1 + i32.add + local.tee $i|16 + local.get $limit + i32.eq + if + local.get $result|13 + local.set $21 + global.get $~lib/memory/__stack_pointer + i32.const 36 i32.add - local.set $start - br $while-continue|1 + global.set $~lib/memory/__stack_pointer + local.get $21 + return end + local.get $end + local.get $sepLen + i32.add + local.set $start + br $while-continue|1 end end local.get $start @@ -28732,27 +28637,25 @@ i32.shl i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end local.get $this @@ -29024,24 +28927,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -29066,25 +28967,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 @@ -29193,22 +29092,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -29231,23 +29128,21 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.1 - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut else local.get $value i64.extend_i32_u @@ -29359,22 +29254,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -29387,22 +29280,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.0 - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -29427,22 +29318,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.0 - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix @@ -29569,24 +29458,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.3 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -29601,24 +29488,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.1 - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -29645,24 +29530,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.1 - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix diff --git a/tests/compiler/std/string.release.wat b/tests/compiler/std/string.release.wat index 6f48e9cd48..2bb47b7467 100644 --- a/tests/compiler/std/string.release.wat +++ b/tests/compiler/std/string.release.wat @@ -2078,7 +2078,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -2111,7 +2110,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -4453,12 +4451,10 @@ local.get $2 call $~lib/util/string/compareImpl i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4624,12 +4620,10 @@ else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz ) (func $~lib/array/Array#get:length (param $0 i32) (result i32) @@ -4656,12 +4650,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.fromCharCodes (param $0 i32) (result i32) (local $1 i32) @@ -5154,12 +5146,10 @@ i32.load offset=16 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -5278,12 +5268,10 @@ local.get $1 local.get $2 call $~lib/string/String#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#localeCompare (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -6161,12 +6149,10 @@ i64.load i64.const 28429475166421108 i64.eq - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/strtol (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -6541,12 +6527,10 @@ local.get $0 local.get $1 call $~lib/util/string/strtol - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/util/string/strtod (param $0 i32) (result f64) (local $1 i32) @@ -7410,12 +7394,10 @@ i32.store local.get $0 call $~lib/util/string/strtod - local.set $1 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 ) (func $~lib/util/string/strtol (result i32) (local $0 i32) @@ -8129,12 +8111,10 @@ local.get $0 local.get $1 call $~lib/string/String#concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__ne (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -8165,12 +8145,10 @@ local.get $1 call $~lib/string/String.__eq i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__gt (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -8388,12 +8366,10 @@ local.get $1 call $~lib/string/String.__lt i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__lte (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -8424,12 +8400,10 @@ local.get $1 call $~lib/string/String.__gt i32.eqz - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#repeat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -9234,12 +9208,10 @@ local.get $1 local.get $2 call $~lib/string/String#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#substr (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9373,12 +9345,10 @@ local.get $1 local.get $2 call $~lib/string/String#substr - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String#substring (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -9538,12 +9508,10 @@ local.get $1 local.get $2 call $~lib/string/String#substring - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/ensureCapacity (param $0 i32) (param $1 i32) (local $2 i32) @@ -10107,12 +10075,10 @@ local.get $1 local.get $2 call $~lib/string/String#split - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/array/Array<~lib/string/String>#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -11095,12 +11061,10 @@ call $~lib/string/String#indexOf i32.const -1 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.eqz if i32.const 0 @@ -11834,12 +11798,10 @@ local.get $0 i32.const 1712 call $~lib/string/String#lastIndexOf@varargs - local.set $0 global.get $~lib/memory/__stack_pointer global.get $std/string/str local.tee $4 i32.store - local.get $0 local.get $4 i32.const 20 i32.sub @@ -13348,12 +13310,10 @@ i32.const 4880 i32.store call $~lib/util/string/strtol - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 i32.const 2147483647 i32.ne if @@ -13399,12 +13359,10 @@ i32.const 4928 i32.store call $~lib/util/string/strtol - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 i64.const 9223372036854775807 i64.ne if @@ -16605,7 +16563,6 @@ local.tee $4 i32.store offset=84 global.get $~lib/memory/__stack_pointer - local.set $5 i32.const 55296 call $~lib/string/String.fromCodePoint local.set $6 @@ -16618,7 +16575,6 @@ global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $5 local.get $6 local.get $0 call $~lib/string/String.__concat @@ -24638,7 +24594,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $5 local.get $0 i32.const 2 i32.shl @@ -24653,7 +24608,6 @@ local.get $4 memory.copy end - local.get $5 local.get $3 i32.store i32.const 16 diff --git a/tests/compiler/std/symbol.debug.wat b/tests/compiler/std/symbol.debug.wat index c53167a286..ca03f8216a 100644 --- a/tests/compiler/std/symbol.debug.wat +++ b/tests/compiler/std/symbol.debug.wat @@ -154,37 +154,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 176 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 176 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -410,22 +408,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -639,27 +635,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -677,28 +671,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1023,27 +1015,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1052,37 +1042,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1172,7 +1160,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1241,15 +1228,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1318,15 +1303,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1334,21 +1317,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1356,27 +1337,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1545,39 +1524,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1596,31 +1573,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2531,40 +2506,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -2834,7 +2807,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $"~lib/map/Map<~lib/string/String,usize>~visit" (param $0 i32) (param $1 i32) local.get $0 @@ -3095,90 +3067,88 @@ i32.const 16 i32.sub local.set $end - block $while-break|0 - loop $while-continue|0 - local.get $pos - local.get $end - i32.le_u - if - block $~lib/util/hash/mix|inlined.0 (result i32) - local.get $s1 - local.set $h|10 - local.get $pos - i32.load - local.set $key|11 - local.get $h|10 - local.get $key|11 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.0 - end - local.set $s1 - block $~lib/util/hash/mix|inlined.1 (result i32) - local.get $s2 - local.set $h|12 - local.get $pos - i32.load offset=4 - local.set $key|13 - local.get $h|12 - local.get $key|13 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.1 - end - local.set $s2 - block $~lib/util/hash/mix|inlined.2 (result i32) - local.get $s3 - local.set $h|14 - local.get $pos - i32.load offset=8 - local.set $key|15 - local.get $h|14 - local.get $key|15 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.2 - end - local.set $s3 - block $~lib/util/hash/mix|inlined.3 (result i32) - local.get $s4 - local.set $h|16 - local.get $pos - i32.load offset=12 - local.set $key|17 - local.get $h|16 - local.get $key|17 - i32.const -2048144777 - i32.mul - i32.add - i32.const 13 - i32.rotl - i32.const -1640531535 - i32.mul - br $~lib/util/hash/mix|inlined.3 - end - local.set $s4 + loop $while-continue|0 + local.get $pos + local.get $end + i32.le_u + if + block $~lib/util/hash/mix|inlined.0 (result i32) + local.get $s1 + local.set $h|10 + local.get $pos + i32.load + local.set $key|11 + local.get $h|10 + local.get $key|11 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.0 + end + local.set $s1 + block $~lib/util/hash/mix|inlined.1 (result i32) + local.get $s2 + local.set $h|12 + local.get $pos + i32.load offset=4 + local.set $key|13 + local.get $h|12 + local.get $key|13 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.1 + end + local.set $s2 + block $~lib/util/hash/mix|inlined.2 (result i32) + local.get $s3 + local.set $h|14 + local.get $pos + i32.load offset=8 + local.set $key|15 + local.get $h|14 + local.get $key|15 + i32.const -2048144777 + i32.mul + i32.add + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.2 + end + local.set $s3 + block $~lib/util/hash/mix|inlined.3 (result i32) + local.get $s4 + local.set $h|16 local.get $pos - i32.const 16 + i32.load offset=12 + local.set $key|17 + local.get $h|16 + local.get $key|17 + i32.const -2048144777 + i32.mul i32.add - local.set $pos - br $while-continue|0 + i32.const 13 + i32.rotl + i32.const -1640531535 + i32.mul + br $~lib/util/hash/mix|inlined.3 end + local.set $s4 + local.get $pos + i32.const 16 + i32.add + local.set $pos + br $while-continue|0 end end local.get $h @@ -3213,62 +3183,58 @@ i32.const 4 i32.sub local.set $end|18 - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $pos + local.get $end|18 + i32.le_u + if + local.get $h local.get $pos - local.get $end|18 - i32.le_u - if - local.get $h - local.get $pos - i32.load - i32.const -1028477379 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 17 - i32.rotl - i32.const 668265263 - i32.mul - local.set $h - local.get $pos - i32.const 4 - i32.add - local.set $pos - br $while-continue|1 - end + i32.load + i32.const -1028477379 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 17 + i32.rotl + i32.const 668265263 + i32.mul + local.set $h + local.get $pos + i32.const 4 + i32.add + local.set $pos + br $while-continue|1 end end local.get $key|1 local.get $len i32.add local.set $end|18 - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $pos + local.get $end|18 + i32.lt_u + if + local.get $h local.get $pos - local.get $end|18 - i32.lt_u - if - local.get $h - local.get $pos - i32.load8_u - i32.const 374761393 - i32.mul - i32.add - local.set $h - local.get $h - i32.const 11 - i32.rotl - i32.const -1640531535 - i32.mul - local.set $h - local.get $pos - i32.const 1 - i32.add - local.set $pos - br $while-continue|2 - end + i32.load8_u + i32.const 374761393 + i32.mul + i32.add + local.set $h + local.get $h + i32.const 11 + i32.rotl + i32.const -1640531535 + i32.mul + local.set $h + local.get $pos + i32.const 1 + i32.add + local.set $pos + br $while-continue|2 end end local.get $h @@ -3437,53 +3403,51 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store + local.get $5 + local.get $key + local.set $5 + global.get $~lib/memory/__stack_pointer + local.get $5 + i32.store offset=4 + local.get $5 + call $~lib/string/String.__eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store - local.get $5 - local.get $key - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $5 - i32.store offset=4 - local.get $5 - call $~lib/string/String.__eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -3670,79 +3634,77 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry + global.get $~lib/memory/__stack_pointer local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.tee $oldEntryKey + i32.store offset=12 + local.get $newEntry + local.get $oldEntryKey + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" + local.get $oldEntryKey + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/util/hash/HASH<~lib/string/String> + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - global.get $~lib/memory/__stack_pointer - local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.tee $oldEntryKey - i32.store offset=12 - local.get $newEntry - local.get $oldEntryKey - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:value" - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:value" - local.get $oldEntryKey - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/util/hash/HASH<~lib/string/String> - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry<~lib/string/String,usize>#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr + end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.4" end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -4162,43 +4124,41 @@ i32.add i32.load local.set $entry - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $entry + if local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + local.set $taggedNext + local.get $taggedNext + i32.const 1 + i32.and + i32.eqz + if (result i32) + local.get $entry + call $"~lib/map/MapEntry#get:key" + local.get $key + i32.eq + else + i32.const 0 + end if local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" - local.set $taggedNext - local.get $taggedNext - i32.const 1 - i32.and - i32.eqz - if (result i32) - local.get $entry - call $"~lib/map/MapEntry#get:key" - local.get $key - i32.eq - else - i32.const 0 - end - if - local.get $entry - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - return - end - local.get $taggedNext - i32.const 1 - i32.const -1 - i32.xor - i32.and - local.set $entry - br $while-continue|0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + return end + local.get $taggedNext + i32.const 1 + i32.const -1 + i32.xor + i32.and + local.set $entry + br $while-continue|0 end end i32.const 0 @@ -4289,72 +4249,70 @@ local.set $oldEnd local.get $newEntries local.set $newPtr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $oldPtr + local.get $oldEnd + i32.ne + if local.get $oldPtr - local.get $oldEnd - i32.ne + local.set $oldEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $oldPtr - local.set $oldEntry + local.get $newPtr + local.set $newEntry local.get $oldEntry - call $"~lib/map/MapEntry#get:taggedNext" - i32.const 1 + call $"~lib/map/MapEntry#get:key" + local.set $oldEntryKey + local.get $newEntry + local.get $oldEntryKey + call $"~lib/map/MapEntry#set:key" + local.get $newEntry + local.get $oldEntry + call $"~lib/map/MapEntry#get:value" + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $"~lib/map/MapEntry#set:value" + local.get $oldEntryKey + call $~lib/util/hash/HASH + local.get $newBucketsMask i32.and - i32.eqz - if - local.get $newPtr - local.set $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:key" - local.set $oldEntryKey - local.get $newEntry - local.get $oldEntryKey - call $"~lib/map/MapEntry#set:key" - local.get $newEntry - local.get $oldEntry - call $"~lib/map/MapEntry#get:value" - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $"~lib/map/MapEntry#set:value" - local.get $oldEntryKey - call $~lib/util/hash/HASH - local.get $newBucketsMask - i32.and - local.set $newBucketIndex - local.get $newBuckets - local.get $newBucketIndex - i32.const 4 - i32.mul - i32.add - local.set $newBucketPtrBase - local.get $newEntry - local.get $newBucketPtrBase - i32.load - call $"~lib/map/MapEntry#set:taggedNext" - local.get $newBucketPtrBase - local.get $newPtr - i32.store - local.get $newPtr - block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.3" - end - i32.add - local.set $newPtr - end - local.get $oldPtr - block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + local.set $newBucketIndex + local.get $newBuckets + local.get $newBucketIndex + i32.const 4 + i32.mul + i32.add + local.set $newBucketPtrBase + local.get $newEntry + local.get $newBucketPtrBase + i32.load + call $"~lib/map/MapEntry#set:taggedNext" + local.get $newBucketPtrBase + local.get $newPtr + i32.store + local.get $newPtr + block $"~lib/map/ENTRY_SIZE|inlined.3" (result i32) i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.4" + br $"~lib/map/ENTRY_SIZE|inlined.3" end i32.add - local.set $oldPtr - br $while-continue|0 + local.set $newPtr end + local.get $oldPtr + block $"~lib/map/ENTRY_SIZE|inlined.4" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.4" + end + i32.add + local.set $oldPtr + br $while-continue|0 end end local.get $this @@ -5532,42 +5490,40 @@ i32.mul i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + local.set $entry + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:taggedNext" i32.const 1 - i32.and - i32.eqz - if - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - i32.const 0 - drop - end - local.get $cur - block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" - end - i32.add - local.set $cur - br $while-continue|0 + drop + local.get $entry + call $"~lib/map/MapEntry<~lib/string/String,usize>#get:key" + local.set $val + i32.const 0 + drop + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit + i32.const 0 + drop end + local.get $cur + block $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE<~lib/string/String,usize>|inlined.7" + end + i32.add + local.set $cur + br $while-continue|0 end end local.get $entries @@ -5629,42 +5585,40 @@ i32.mul i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + local.set $entry + local.get $entry + call $"~lib/map/MapEntry#get:taggedNext" + i32.const 1 + i32.and + i32.eqz if - local.get $cur - local.set $entry - local.get $entry - call $"~lib/map/MapEntry#get:taggedNext" + i32.const 0 + drop i32.const 1 - i32.and - i32.eqz - if - i32.const 0 - drop - i32.const 1 - drop - local.get $entry - call $"~lib/map/MapEntry#get:value" - local.set $val - i32.const 0 - drop - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) - i32.const 12 - br $"~lib/map/ENTRY_SIZE|inlined.7" - end - i32.add - local.set $cur - br $while-continue|0 + drop + local.get $entry + call $"~lib/map/MapEntry#get:value" + local.set $val + i32.const 0 + drop + local.get $val + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + block $"~lib/map/ENTRY_SIZE|inlined.7" (result i32) + i32.const 12 + br $"~lib/map/ENTRY_SIZE|inlined.7" + end + i32.add + local.set $cur + br $while-continue|0 end end local.get $entries diff --git a/tests/compiler/std/symbol.release.wat b/tests/compiler/std/symbol.release.wat index 59048f83cc..365b6a445b 100644 --- a/tests/compiler/std/symbol.release.wat +++ b/tests/compiler/std/symbol.release.wat @@ -1135,7 +1135,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1168,7 +1167,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2081,12 +2079,10 @@ i32.shr_u i32.xor end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2275,11 +2271,9 @@ i32.store local.get $0 i32.load - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $1 local.get $0 i32.load offset=4 @@ -2384,11 +2378,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2401,11 +2393,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -2706,11 +2696,9 @@ i32.store local.get $0 i32.load - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $3 local.get $2 local.get $0 i32.load offset=4 @@ -2836,11 +2824,9 @@ i32.store local.get $0 i32.load offset=16 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $2 local.get $0 i32.load offset=12 i32.eq @@ -2853,11 +2839,9 @@ i32.store offset=4 local.get $0 i32.load offset=20 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $2 local.get $0 i32.load offset=12 i32.const 3 @@ -3208,12 +3192,10 @@ call $"~lib/map/Map<~lib/string/String,usize>#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 if global.get $~lib/memory/__stack_pointer global.get $~lib/symbol/stringToId @@ -3368,12 +3350,10 @@ call $"~lib/map/Map#find" i32.const 0 i32.ne - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"~lib/map/Map#get" (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -3440,12 +3420,10 @@ end local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/symbol/_Symbol.keyFor (param $0 i32) (result i32) (local $1 i32) @@ -3485,12 +3463,10 @@ else i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__concat (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -3761,12 +3737,10 @@ local.get $0 i32.const 2464 call $~lib/string/String.__concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/symbol (local $0 i32) diff --git a/tests/compiler/std/typedarray.debug.wat b/tests/compiler/std/typedarray.debug.wat index 387f531a13..fecf5869a5 100644 --- a/tests/compiler/std/typedarray.debug.wat +++ b/tests/compiler/std/typedarray.debug.wat @@ -466,37 +466,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 208 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 208 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -722,22 +720,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -951,27 +947,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -989,28 +983,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1335,27 +1327,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1364,37 +1354,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1484,7 +1472,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1553,15 +1540,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1630,15 +1615,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1646,21 +1629,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1668,27 +1649,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1857,39 +1836,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1908,31 +1885,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2775,151 +2750,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $a - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - f64.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - f64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + f64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - f64.store offset=16 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + f64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + f64.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - f64.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - f64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + f64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - f64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + f64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -2959,87 +2932,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - f64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $12) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + f64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + f64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $12) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $tmp + local.get $ptr local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - f64.load - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - f64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 3 + i32.shl + i32.add + f64.load + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + f64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -4462,40 +4431,38 @@ i32.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i32.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i32.gt_s + if + local.get $ux + local.get $uy + i32.ge_u if local.get $ux local.get $uy - i32.ge_u + i32.eq if - local.get $ux - local.get $uy - i32.eq - if - f32.const 0 - local.get $x - f32.mul - return - end - local.get $ux - local.get $uy - i32.sub - local.set $ux + f32.const 0 + local.get $x + f32.mul + return end local.get $ux - i32.const 1 - i32.shl - local.set $ux - local.get $ex - i32.const 1 + local.get $uy i32.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i32.const 1 + i32.shl + local.set $ux + local.get $ex + i32.const 1 + i32.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -4729,40 +4696,38 @@ i64.or local.set $uy end - block $while-break|0 - loop $while-continue|0 - local.get $ex - local.get $ey - i64.gt_s + loop $while-continue|0 + local.get $ex + local.get $ey + i64.gt_s + if + local.get $ux + local.get $uy + i64.ge_u if local.get $ux local.get $uy - i64.ge_u + i64.eq if - local.get $ux - local.get $uy - i64.eq - if - f64.const 0 - local.get $x - f64.mul - return - end - local.get $ux - local.get $uy - i64.sub - local.set $ux + f64.const 0 + local.get $x + f64.mul + return end local.get $ux - i64.const 1 - i64.shl - local.set $ux - local.get $ex - i64.const 1 + local.get $uy i64.sub - local.set $ex - br $while-continue|0 + local.set $ux end + local.get $ux + i64.const 1 + i64.shl + local.set $ux + local.get $ex + i64.const 1 + i64.sub + local.set $ex + br $while-continue|0 end end local.get $ux @@ -4931,42 +4896,40 @@ i32.const 8 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + i32.const 7 + i32.add + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - i32.const 7 i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.add - local.set $front - local.get $ptr - local.get $tail - i32.add - local.get $i - i32.sub - local.set $back - local.get $front - i64.load - call $~lib/polyfills/bswap - local.set $temp - local.get $front - local.get $back - i64.load - call $~lib/polyfills/bswap - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 8 - i32.add - local.set $i - br $while-continue|0 - end + local.set $front + local.get $ptr + local.get $tail + i32.add + local.get $i + i32.sub + local.set $back + local.get $front + i64.load + call $~lib/polyfills/bswap + local.set $temp + local.get $front + local.get $back + i64.load + call $~lib/polyfills/bswap + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 8 + i32.add + local.set $i + br $while-continue|0 end end i32.const 1 @@ -4977,42 +4940,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 0 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load8_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load8_u - i32.store8 - local.get $back|9 - local.get $temp|10 - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 - end + i32.const 0 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 0 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load8_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load8_u + i32.store8 + local.get $back|9 + local.get $temp|10 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 end end end @@ -5053,90 +5014,86 @@ i32.const 2 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i i32.const 1 + i32.shl i32.add - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back - local.get $back - i32.load - i32.const 16 - i32.rotr - local.set $temp - local.get $back - local.get $front - i32.load - i32.const 16 - i32.rotr - i32.store - local.get $front - local.get $temp - i32.store - local.get $i - i32.const 2 - i32.add - local.set $i - br $while-continue|0 - end + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back + local.get $back + i32.load + i32.const 16 + i32.rotr + local.set $temp + local.get $back + local.get $front + i32.load + i32.const 16 + i32.rotr + i32.store + local.get $front + local.get $temp + i32.store + local.get $i + i32.const 2 + i32.add + local.set $i + br $while-continue|0 end end local.get $len i32.const 1 i32.sub local.set $tail - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $front|8 - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 1 - i32.shl - i32.add - local.set $back|9 - local.get $front|8 - i32.load16_u - local.set $temp|10 - local.get $front|8 - local.get $back|9 - i32.load16_u - i32.store16 - local.get $back|9 - local.get $temp|10 - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 - end + i32.const 1 + i32.shl + i32.add + local.set $front|8 + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $back|9 + local.get $front|8 + i32.load16_u + local.set $temp|10 + local.get $front|8 + local.get $back|9 + i32.load16_u + i32.store16 + local.get $back|9 + local.get $temp|10 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 end end end @@ -5174,42 +5131,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - i32.load - local.set $temp - local.get $front - local.get $back - i32.load - i32.store - local.get $back - local.get $temp - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + i32.load + local.set $temp + local.get $front + local.get $back + i32.load + i32.store + local.get $back + local.get $temp + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -5247,42 +5202,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 3 - i32.shl - i32.add - local.set $back - local.get $front - i64.load - local.set $temp - local.get $front - local.get $back - i64.load - i64.store - local.get $back - local.get $temp - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $back + local.get $front + i64.load + local.set $temp + local.get $front + local.get $back + i64.load + i64.store + local.get $back + local.get $temp + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -5320,42 +5273,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 2 - i32.shl - i32.add - local.set $back - local.get $front - f32.load - local.set $temp - local.get $front - local.get $back - f32.load - f32.store - local.get $back - local.get $temp - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 2 + i32.shl + i32.add + local.set $back + local.get $front + f32.load + local.set $temp + local.get $front + local.get $back + f32.load + f32.store + local.get $back + local.get $temp + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -5393,42 +5344,40 @@ i32.const 1 i32.sub local.set $tail - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + local.get $hlen + i32.lt_u + if + local.get $ptr local.get $i - local.get $hlen - i32.lt_u - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $front - local.get $ptr - local.get $tail - local.get $i - i32.sub - i32.const 3 - i32.shl - i32.add - local.set $back - local.get $front - f64.load - local.set $temp - local.get $front - local.get $back - f64.load - f64.store - local.get $back - local.get $temp - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + local.set $front + local.get $ptr + local.get $tail + local.get $i + i32.sub + i32.const 3 + i32.shl + i32.add + local.set $back + local.get $front + f64.load + local.set $temp + local.get $front + local.get $back + f64.load + f64.store + local.get $back + local.get $temp + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|0 end end end @@ -5500,61 +5449,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 6988 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 6988 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -5631,37 +5578,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 7408 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 7408 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -5715,44 +5660,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -5976,22 +5917,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6064,40 +6003,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -6156,22 +6093,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.3 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6304,22 +6239,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.4 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6378,22 +6311,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.5 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6474,22 +6405,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.6 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6542,22 +6471,20 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.7 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut local.get $sign local.get $decimals i32.add @@ -6633,109 +6560,107 @@ (local $c2 i32) (local $digits1 i64) (local $digits2 i64) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i64.const 100000000 + i64.ge_u + if local.get $num i64.const 100000000 - i64.ge_u - if - local.get $num - i64.const 100000000 - i64.div_u - local.set $t - local.get $num - local.get $t - i64.const 100000000 - i64.mul - i64.sub - i32.wrap_i64 - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 10000 - i32.div_u - local.set $b - local.get $r - i32.const 10000 - i32.rem_u - local.set $c - local.get $b - i32.const 100 - i32.div_u - local.set $b1 - local.get $b - i32.const 100 - i32.rem_u - local.set $b2 - local.get $c - i32.const 100 - i32.div_u - local.set $c1 - local.get $c - i32.const 100 - i32.rem_u - local.set $c2 - i32.const 6988 - local.get $c1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $c2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - i32.const 6988 - local.get $b1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 6988 - local.get $b2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i64.div_u + local.set $t + local.get $num + local.get $t + i64.const 100000000 + i64.mul + i64.sub + i32.wrap_i64 + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 10000 + i32.div_u + local.set $b + local.get $r + i32.const 10000 + i32.rem_u + local.set $c + local.get $b + i32.const 100 + i32.div_u + local.set $b1 + local.get $b + i32.const 100 + i32.rem_u + local.set $b2 + local.get $c + i32.const 100 + i32.div_u + local.set $c1 + local.get $c + i32.const 100 + i32.rem_u + local.set $c2 + i32.const 6988 + local.get $c1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $c2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + i32.const 6988 + local.get $b1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 6988 + local.get $b2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $buffer @@ -6830,44 +6755,40 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.9 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - block $~lib/util/number/utoa64_dec_core|inlined.1 - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end local.get $sign local.get $decimals @@ -6932,44 +6853,40 @@ local.get $val32 call $~lib/util/number/decimalCount32 local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.11 - local.get $dest - local.set $buffer|6 - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|6 - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $dest + local.set $buffer|6 + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|6 + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value local.set $val64 local.get $val64 call $~lib/util/number/decimalCount64High local.set $decimals - block $~lib/util/number/utoa64_dec_core|inlined.3 - local.get $dest - local.set $buffer|10 - local.get $val64 - local.set $num|11 - local.get $decimals - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $dest + local.set $buffer|10 + local.get $val64 + local.set $num|11 + local.get $decimals + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end local.get $sign local.get $decimals @@ -7039,454 +6956,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 9712 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 9712 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return end + br $while-continue|0 end end - block $while-break|4 - loop $while-continue|4 + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 9712 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 9712 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -7711,22 +7615,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.12 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -7792,22 +7694,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.13 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -7991,115 +7891,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 8840 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 9536 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 8840 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 9536 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -8646,151 +8542,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $a + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $a - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add - i32.load8_s - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $a - i32.store8 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store8 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $max - i32.store8 offset=2 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $max + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add - i32.load8_s - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $a - i32.store8 offset=1 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store8 offset=1 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $min - i32.store8 offset=1 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $min + i32.store8 offset=1 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -8830,87 +8724,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_s offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $tmp + local.get $ptr local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_s - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 0 + i32.shl + i32.add + i32.load8_s + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -9146,151 +9036,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $a + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $a - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add - i32.load8_u - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $a - i32.store8 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store8 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $max - i32.store8 offset=2 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $max + i32.store8 offset=2 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 0 i32.shl i32.add - i32.load8_u - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $a - i32.store8 offset=1 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store8 offset=1 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - local.get $min - i32.store8 offset=1 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + local.get $min + i32.store8 offset=1 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -9330,87 +9218,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u offset=1 - local.get $ptr - local.get $j - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u offset=1 + local.get $ptr + local.get $j + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $tmp + local.get $ptr local.get $i + i32.const 0 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - i32.load8_u - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 0 - i32.shl - i32.add - local.get $tmp - i32.store8 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 0 + i32.shl + i32.add + local.get $tmp + i32.store8 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -9694,151 +9578,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $a + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $a - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add - i32.load16_s - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $a - i32.store16 offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store16 offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $max - i32.store16 offset=4 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $max + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add - i32.load16_s - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $a - i32.store16 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store16 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $min - i32.store16 offset=2 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $min + i32.store16 offset=2 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -9878,87 +9760,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 1 + i32.shl + i32.add + i32.load16_s offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $tmp + local.get $ptr local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_s - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 1 + i32.shl + i32.add + i32.load16_s + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -10194,151 +10072,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $a + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $a - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add - i32.load16_u - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $a - i32.store16 offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store16 offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $max - i32.store16 offset=4 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $max + i32.store16 offset=4 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 1 i32.shl i32.add - i32.load16_u - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $a - i32.store16 offset=2 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store16 offset=2 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - local.get $min - i32.store16 offset=2 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + local.get $min + i32.store16 offset=2 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -10378,87 +10254,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u offset=2 - local.get $ptr - local.get $j - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 1 + i32.shl + i32.add + i32.load16_u offset=2 + local.get $ptr + local.get $j + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $tmp + local.get $ptr local.get $i + i32.const 1 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $tmp - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - i32.load16_u - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 1 - i32.shl - i32.add - local.get $tmp - i32.store16 - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 1 + i32.shl + i32.add + i32.load16_u + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 1 + i32.shl + i32.add + local.get $tmp + i32.store16 + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -10708,151 +10580,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -10892,87 +10762,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -11202,151 +11068,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - i32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + i32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - i32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - i32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - i32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + i32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -11386,87 +11250,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $0) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + i32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + i32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $0) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $tmp + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - i32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + i32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -11700,151 +11560,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - i64.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - i64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - i64.store offset=16 - block $while-break|2 - loop $while-continue|2 - local.get $j - local.get $left - i32.ge_s - if - local.get $ptr + end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s + if + local.get $ptr local.get $j i32.const 3 i32.shl i32.add - i64.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - i64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - i64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + i64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -11884,87 +11742,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -12198,151 +12052,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $a - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - i64.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - i64.store offset=16 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 + i64.store offset=16 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $max - i64.store offset=16 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $max + i64.store offset=16 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 3 + i32.shl + i32.add + i64.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 3 i32.shl i32.add - i64.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $a - i64.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + i64.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - local.get $min - i64.store offset=8 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + local.get $min + i64.store offset=8 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -12382,87 +12234,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load offset=8 - local.get $ptr - local.get $j - i32.const 3 - i32.shl - i32.add - i64.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $8) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 3 + i32.shl + i32.add + i64.load offset=8 + local.get $ptr + local.get $j + i32.const 3 + i32.shl + i32.add + i64.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $8) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $tmp + local.get $ptr local.get $i + i32.const 3 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - i64.load - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 3 - i32.shl - i32.add - local.get $tmp - i64.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 3 + i32.shl + i32.add + i64.load + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 3 + i32.shl + i32.add + local.get $tmp + i64.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -12696,151 +12544,149 @@ select i32.add local.set $i - block $for-break0 - loop $for-loop|0 + loop $for-loop|0 + local.get $i + local.get $right + i32.le_s + if + local.get $ptr local.get $i - local.get $right + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.set $b + local.get $b + local.set $min + local.get $a + local.set $max + local.get $a + local.get $b + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 i32.le_s if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $a - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.set $b - local.get $b - local.set $min - local.get $a - local.set $max local.get $a + local.set $min local.get $b - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.le_s - if - local.get $a - local.set $min - local.get $b - local.set $max - end - local.get $i - i32.const 1 - i32.sub - local.set $j - block $while-break|1 - loop $while-continue|1 + local.set $max + end + local.get $i + i32.const 1 + i32.sub + local.set $j + block $while-break|1 + loop $while-continue|1 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $a + local.get $max + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - f32.load - local.set $a local.get $a - local.get $max - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - f32.store offset=8 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|1 - end - br $while-continue|1 - end + f32.store offset=8 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|1 + end + br $while-continue|1 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $max - f32.store offset=8 - block $while-break|2 - loop $while-continue|2 + end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $max + f32.store offset=8 + block $while-break|2 + loop $while-continue|2 + local.get $j + local.get $left + i32.ge_s + if + local.get $ptr local.get $j - local.get $left - i32.ge_s + i32.const 2 + i32.shl + i32.add + f32.load + local.set $a + local.get $a + local.get $min + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 0 + i32.gt_s if local.get $ptr local.get $j i32.const 2 i32.shl i32.add - f32.load - local.set $a local.get $a - local.get $min - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 0 - i32.gt_s - if - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $a - f32.store offset=4 - local.get $j - i32.const 1 - i32.sub - local.set $j - else - br $while-break|2 - end - br $while-continue|2 + f32.store offset=4 + local.get $j + i32.const 1 + i32.sub + local.set $j + else + br $while-break|2 end + br $while-continue|2 end end - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - local.get $min - f32.store offset=4 - local.get $i - i32.const 2 - i32.add - local.set $i - br $for-loop|0 end + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + local.get $min + f32.store offset=4 + local.get $i + i32.const 2 + i32.add + local.set $i + br $for-loop|0 end end ) @@ -12880,87 +12726,83 @@ i32.const 0 i32.gt_s if - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $j + local.get $right + i32.lt_s + if (result i32) + local.get $ptr local.get $j - local.get $right - i32.lt_s - if (result i32) - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load offset=4 - local.get $ptr - local.get $j - i32.const 2 - i32.shl - i32.add - f32.load - i32.const 2 - global.set $~argumentsLength - local.get $comparator - i32.load - call_indirect (type $13) - i32.const 31 - i32.shr_u - else - i32.const 0 - end - if - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 2 + i32.shl + i32.add + f32.load offset=4 + local.get $ptr + local.get $j + i32.const 2 + i32.shl + i32.add + f32.load + i32.const 2 + global.set $~argumentsLength + local.get $comparator + i32.load + call_indirect (type $13) + i32.const 31 + i32.shr_u + else + i32.const 0 + end + if + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $j local.set $k - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $tmp + local.get $ptr + local.get $i + i32.const 2 + i32.shl + i32.add + local.get $ptr local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $tmp - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - f32.load - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - local.get $ptr - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $tmp - f32.store - local.get $k - i32.const 1 - i32.sub - local.set $k - br $while-continue|1 - end + i32.const 2 + i32.shl + i32.add + f32.load + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + local.get $ptr + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $tmp + f32.store + local.get $k + i32.const 1 + i32.sub + local.set $k + br $while-continue|1 end end else @@ -13213,16 +13055,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -13330,7 +13170,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/typedarray/Int8Array~visit (param $0 i32) (param $1 i32) local.get $0 @@ -16968,145 +16807,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -39844,62 +39681,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Int8Array,i8>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int8Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -40099,62 +39934,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint8Array,u8>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint8Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint8Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -40357,62 +40190,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint8ClampedArray#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint8ClampedArray#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -40613,62 +40444,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Int16Array,i16>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int16Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int16Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -40868,62 +40697,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint16Array,u16>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint16Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint16Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -41122,62 +40949,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Int32Array,i32>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + i32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -41370,62 +41195,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint32Array,u32>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint32Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint32Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $5) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + i32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $5) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -41619,62 +41442,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Int64Array,i64>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int64Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int64Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $26) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + i64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $26) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -41871,62 +41692,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Uint64Array,u64>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Uint64Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Uint64Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $26) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + i64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $26) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -42123,62 +41942,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Float32Array,f32>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Float32Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Float32Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $37) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + f32.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $37) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -42375,62 +42192,60 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/FOREACH<~lib/typedarray/Float64Array,f64>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $array - i32.store - global.get $~lib/memory/__stack_pointer - local.get $fn - local.tee $fn|3 - i32.store offset=4 - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $ptr - i32.const 0 - local.set $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - call $~lib/typedarray/Float64Array#get:length - local.set $k - loop $for-loop|0 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $array + i32.store + global.get $~lib/memory/__stack_pointer + local.get $fn + local.tee $fn|3 + i32.store offset=4 + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $ptr + i32.const 0 + local.set $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Float64Array#get:length + local.set $k + loop $for-loop|0 + local.get $i + local.get $k + i32.lt_s + if + local.get $ptr local.get $i - local.get $k - i32.lt_s - if - local.get $ptr - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.get $i - local.get $array - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.const 3 - global.set $~argumentsLength - local.get $fn|3 - i32.load - call_indirect (type $38) - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + f64.load + local.get $i + local.get $array + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.const 3 + global.set $~argumentsLength + local.get $fn|3 + i32.load + call_indirect (type $38) + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -46913,31 +46728,29 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.get $searchElement|4 + i32.extend8_s + i32.eq if - local.get $dataStart - local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $searchElement|4 - i32.extend8_s - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - end local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -47020,31 +46833,29 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index i32.const 0 - i32.ge_s + i32.shl + i32.add + i32.load8_s + local.get $searchElement|4 + i32.extend8_s + i32.eq if - local.get $dataStart local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.get $searchElement|4 - i32.extend8_s - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int8Array,i8>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -47814,32 +47625,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq if - local.get $dataStart local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -47922,32 +47731,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index i32.const 0 - i32.ge_s + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq if - local.get $dataStart - local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" - end local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8Array,u8>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -48718,32 +48525,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq if - local.get $dataStart - local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" - end local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -48826,32 +48631,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index i32.const 0 - i32.ge_s + i32.shl + i32.add + i32.load8_u + local.get $searchElement|4 + i32.const 255 + i32.and + i32.eq if - local.get $dataStart local.get $index - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.get $searchElement|4 - i32.const 255 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint8ClampedArray,u8>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -49622,31 +49425,29 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $searchElement|4 + i32.extend16_s + i32.eq if - local.get $dataStart local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $searchElement|4 - i32.extend16_s - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -49729,31 +49530,29 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.get $searchElement|4 + i32.extend16_s + i32.eq if - local.get $dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.get $searchElement|4 - i32.extend16_s - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" - end local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int16Array,i16>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -50523,32 +50322,30 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $searchElement|4 + i32.const 65535 + i32.and + i32.eq if - local.get $dataStart - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $searchElement|4 - i32.const 65535 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" - end local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -50631,32 +50428,30 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.get $searchElement|4 + i32.const 65535 + i32.and + i32.eq if - local.get $dataStart local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.get $searchElement|4 - i32.const 65535 - i32.and - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint16Array,u16>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -51427,30 +51222,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq if - local.get $dataStart local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -51533,30 +51326,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq if - local.get $dataStart local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int32Array,i32>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -52325,30 +52116,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq if - local.get $dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - end local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -52431,30 +52220,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 2 + i32.shl + i32.add + i32.load + local.get $searchElement|4 + i32.eq if - local.get $dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - i32.load - local.get $searchElement|4 - i32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" - end local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint32Array,u32>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -53223,30 +53010,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq if - local.get $dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - end local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -53329,30 +53114,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq if - local.get $dataStart local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Int64Array,i64>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -54122,30 +53905,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq if - local.get $dataStart local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -54228,30 +54009,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 3 + i32.shl + i32.add + i64.load + local.get $searchElement|4 + i64.eq if - local.get $dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - local.get $searchElement|4 - i64.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" - end local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Uint64Array,u64>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -55021,30 +54800,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 2 + i32.shl + i32.add + f32.load + local.get $searchElement|4 + f32.eq if - local.get $dataStart local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.get $searchElement|4 - f32.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -55127,30 +54904,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 2 + i32.shl + i32.add + f32.load + local.get $searchElement|4 + f32.eq if - local.get $dataStart local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.get $searchElement|4 - f32.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" - end - local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float32Array,f32>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -55920,30 +55695,28 @@ local.get $11 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s + i32.const 3 + i32.shl + i32.add + f64.load + local.get $searchElement|4 + f64.eq if - local.get $dataStart local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.get $searchElement|4 - f64.eq - if - local.get $index - br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - end - local.get $index - i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const -1 @@ -56026,30 +55799,28 @@ local.get $9 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + i32.const 0 + i32.ge_s + if + local.get $dataStart local.get $index - i32.const 0 - i32.ge_s + i32.const 3 + i32.shl + i32.add + f64.load + local.get $searchElement|4 + f64.eq if - local.get $dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.get $searchElement|4 - f64.eq - if - local.get $index - br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" - end local.get $index - i32.const 1 - i32.sub - local.set $index - br $while-continue|0 + br $"~lib/typedarray/LAST_INDEX_OF<~lib/typedarray/Float64Array,f64>|inlined.0" end + local.get $index + i32.const 1 + i32.sub + local.set $index + br $while-continue|0 end end i32.const -1 @@ -56822,43 +56593,41 @@ local.get $12 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart - local.get $index - i32.const 3 - i32.shl - i32.add - f64.load - local.set $elem + i32.const 3 + i32.shl + i32.add + f64.load + local.set $elem + local.get $elem + local.get $searchElement|4 + f64.eq + if (result i32) + i32.const 1 + else + local.get $elem local.get $elem + f64.ne local.get $searchElement|4 - f64.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f64.ne - local.get $searchElement|4 - local.get $searchElement|4 - f64.ne - i32.and - end - if - i32.const 1 - br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" - end - local.get $index + local.get $searchElement|4 + f64.ne + i32.and + end + if i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const 0 @@ -56950,43 +56719,41 @@ local.get $12 call $~lib/arraybuffer/ArrayBufferView#get:dataStart local.set $dataStart - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $index + local.get $len + i32.lt_s + if + local.get $dataStart local.get $index - local.get $len - i32.lt_s - if - local.get $dataStart - local.get $index - i32.const 2 - i32.shl - i32.add - f32.load - local.set $elem + i32.const 2 + i32.shl + i32.add + f32.load + local.set $elem + local.get $elem + local.get $searchElement|4 + f32.eq + if (result i32) + i32.const 1 + else + local.get $elem local.get $elem + f32.ne local.get $searchElement|4 - f32.eq - if (result i32) - i32.const 1 - else - local.get $elem - local.get $elem - f32.ne - local.get $searchElement|4 - local.get $searchElement|4 - f32.ne - i32.and - end - if - i32.const 1 - br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" - end - local.get $index + local.get $searchElement|4 + f32.ne + i32.and + end + if i32.const 1 - i32.add - local.set $index - br $while-continue|0 + br $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" end + local.get $index + i32.const 1 + i32.add + local.set $index + br $while-continue|0 end end i32.const 0 @@ -65247,110 +65014,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -65571,121 +65336,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_s + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -65715,111 +65478,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -65874,121 +65635,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_s + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -66015,83 +65774,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy + call $~lib/typedarray/Int8Array#get:length + i32.gt_s end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -66119,110 +65876,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -66249,83 +66004,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy + call $~lib/typedarray/Int8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -66679,110 +66432,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67003,121 +66754,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_u + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67147,111 +66896,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67281,121 +67028,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_u + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67422,83 +67167,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -67526,110 +67269,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store8 local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -67656,83 +67397,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy + call $~lib/typedarray/Uint8Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -68086,167 +67825,165 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Uint8ClampedArray#__uget (param $this i32) (param $index i32) (result i32) - (local $2 i32) - global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store - local.get $this - local.set $2 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store - local.get $2 + local.get $12 + i32.store offset=8 + local.get $12 call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $index + local.get $offset|5 + i32.const 0 + i32.shl i32.add - i32.load8_u - local.set $2 + local.set $targetStart + local.get $source|4 + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 4 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 - return - ) - (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $target i32) (param $compare i32) - (local $len i32) - (local $i i32) + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Uint8ClampedArray#__uget (param $this i32) (param $index i32) (result i32) + (local $2 i32) + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store + local.get $this + local.set $2 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store + local.get $2 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $index + i32.add + i32.load8_u + local.set $2 + global.get $~lib/memory/__stack_pointer + i32.const 4 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $2 + return + ) + (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> (param $target i32) (param $compare i32) + (local $len i32) + (local $i i32) (local $vala i32) (local $valb i32) (local $6 i32) @@ -68374,124 +68111,122 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f32.sub + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $value - f32.min - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + f32.const 255 + local.get $value + f32.min + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -68521,133 +68256,131 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i64.extend_i32_s - i32.const 255 - local.get $value - i32.wrap_i64 - i32.sub - i32.const 31 - i32.shr_s - i64.extend_i32_s - local.get $value - i64.or - i64.and - i64.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i64.extend_i32_s + i32.const 255 + local.get $value + i32.wrap_i64 + i32.sub + i32.const 31 + i32.shr_s + i64.extend_i32_s + local.get $value + i64.or + i64.and + i64.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -68677,124 +68410,122 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f64.sub + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) f64.const 0 - f64.eq - if (result i32) - f64.const 0 - f64.const 255 - local.get $value - f64.min - f64.max - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + f64.const 255 + local.get $value + f64.min + f64.max + i32.trunc_sat_f64_u + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -68821,83 +68552,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 0 - i32.shl - memory.copy + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 0 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -68925,129 +68654,127 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 0 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -69077,128 +68804,126 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.eqz - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.eqz + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -69554,110 +69279,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -69880,121 +69603,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else - i32.const 0 - end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_s + else + i32.const 0 end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70024,111 +69745,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70158,121 +69877,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else - i32.const 0 - end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_s + else + i32.const 0 end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70302,110 +70019,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70432,83 +70147,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 1 - i32.shl - memory.copy + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 1 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -70536,110 +70249,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -70995,110 +70706,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71321,121 +71030,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_u + else + i32.const 0 end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71465,111 +71172,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store16 local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71599,121 +71304,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_u + else + i32.const 0 end + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71743,110 +71446,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 1 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + local.set $ptr + local.get $sourceStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -71873,83 +71574,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 1 - i32.shl - memory.copy + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 1 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -71977,110 +71676,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint16Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint16Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) i32.const 1 - i32.shl + else + local.get $sourceLen + local.get $offset|5 i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint16Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 1 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 1 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store16 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store16 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -72433,83 +72130,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -72705,121 +72400,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_s - else - i32.const 0 - end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_s + else + i32.const 0 end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -72849,111 +72542,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -72983,121 +72674,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_s - else - i32.const 0 - end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_s + else + i32.const 0 end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -73127,110 +72816,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -73260,110 +72947,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -73393,110 +73078,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -73849,83 +73532,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -74146,121 +73827,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $value - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f32_u + else + i32.const 0 end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74290,111 +73969,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 3 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 3 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.wrap_i64 - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.wrap_i64 + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74424,121 +74101,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i32) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i32) - local.get $value - i32.trunc_sat_f64_u - else - i32.const 0 - end - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i32.trunc_sat_f64_u + else + i32.const 0 end + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74568,110 +74243,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74701,110 +74374,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -74834,110 +74505,108 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 2 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 2 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -75293,111 +74962,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -75622,121 +75289,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i64) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $value - i64.trunc_sat_f32_s - else - i64.const 0 - end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i64.trunc_sat_f32_s + else + i64.const 0 end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -75763,83 +75428,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 3 - i32.shl - memory.copy + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 3 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -75867,255 +75530,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value - local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $value - i64.trunc_sat_f64_s - else - i64.const 0 - end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end - end + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable end + local.get $target + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $this i32) (param $source i32) (param $offset i32) - (local $target i32) - (local $source|4 i32) - (local $offset|5 i32) - (local $sourceLen i32) - (local $targetStart i32) - (local $sourceStart i32) - (local $i i32) - (local $ptr i32) - (local $value i32) - (local $12 i32) - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - call $~stack_check - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.set $targetStart + local.get $source|4 + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $12 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 - local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i64) local.get $value - i64.extend_i32_u - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i64.trunc_sat_f64_s + else + i64.const 0 end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -76123,7 +75650,7 @@ i32.add global.set $~lib/memory/__stack_pointer ) - (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $this i32) (param $source i32) (param $offset i32) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Uint8Array> (param $this i32) (param $source i32) (param $offset i32) (local $target i32) (local $source|4 i32) (local $offset|5 i32) @@ -76145,111 +75672,241 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_u + i64.store + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.set $i + br $for-loop|0 end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + ) + (func $~lib/typedarray/Int64Array#set<~lib/typedarray/Int16Array> (param $this i32) (param $source i32) (param $offset i32) + (local $target i32) + (local $source|4 i32) + (local $offset|5 i32) + (local $sourceLen i32) + (local $targetStart i32) + (local $sourceStart i32) + (local $i i32) + (local $ptr i32) + (local $value i32) + (local $12 i32) + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + call $~stack_check + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -76279,111 +75936,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Int64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Int64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -76739,111 +76394,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77068,121 +76721,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i64) local.get $value - f32.sub - f32.const 0 - f32.eq - if (result i64) - local.get $value - i64.trunc_sat_f32_u - else - i64.const 0 - end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i64.trunc_sat_f32_u + else + i64.const 0 end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77209,83 +76860,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 3 - i32.shl - memory.copy + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 3 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -77313,121 +76962,119 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - f64.load - local.set $value - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - local.get $value + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + f64.load + local.set $value + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + local.get $value + local.get $value + f64.sub + f64.const 0 + f64.eq + if (result i64) local.get $value - f64.sub - f64.const 0 - f64.eq - if (result i64) - local.get $value - i64.trunc_sat_f64_u - else - i64.const 0 - end - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + i64.trunc_sat_f64_u + else + i64.const 0 end + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77457,111 +77104,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_u - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_u + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77591,111 +77236,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -77725,111 +77368,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - i64.extend_i32_s - i64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + i64.extend_i32_s + i64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -78185,111 +77826,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -78486,83 +78125,81 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $9 - i32.store offset=8 - local.get $9 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $9 global.get $~lib/memory/__stack_pointer local.get $9 i32.store offset=8 local.get $9 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.eqz - drop - local.get $targetStart - local.get $sourceStart - local.get $sourceLen - i32.const 2 - i32.shl - memory.copy + call $~lib/typedarray/Float32Array#get:length + i32.gt_s end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $9 + i32.store offset=8 + local.get $9 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.eqz + drop + local.get $targetStart + local.get $sourceStart + local.get $sourceLen + i32.const 2 + i32.shl + memory.copy global.get $~lib/memory/__stack_pointer i32.const 12 i32.add @@ -78590,111 +78227,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i64_s + f32.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i64_s - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -78724,111 +78359,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_u - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_u + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -78858,111 +78491,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 2 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -78992,111 +78623,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float32Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 2 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float32Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 2 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 2 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f32.convert_i32_s - f32.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 2 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f32.convert_i32_s + f32.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -79420,111 +79049,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -79722,112 +79349,110 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 3 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 3 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - local.get $ptr - local.get $value - f64.promote_f32 - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + local.get $ptr + local.get $value + f64.promote_f32 + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -79857,111 +79482,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Int64Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int64Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int64Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 3 - i32.shl - i32.add - i64.load - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i64_s - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 3 + i32.shl + i32.add + i64.load + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i64_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -79991,111 +79614,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Uint8Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Uint8Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_u - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_u - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_u + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_u + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80125,111 +79746,109 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/typedarray/Int16Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int16Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen + local.get $offset|5 + i32.add + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/typedarray/Int16Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen i32.lt_s - if (result i32) + if + local.get $targetStart + local.get $i + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i i32.const 1 - else - local.get $sourceLen - local.get $offset|5 + i32.shl i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.get $offset|5 - i32.const 3 - i32.shl - i32.add - local.set $targetStart - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + i32.load16_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80257,113 +79876,111 @@ i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Float64Array,~lib/array/Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/array/Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float64Array#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $12 + call $~lib/array/Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 3 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/array/Array#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 1 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Float64Array#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 3 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/array/Array#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 1 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 3 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 0 - i32.shl - i32.add - i32.load8_s - local.set $value - i32.const 0 - drop - i32.const 0 - drop - local.get $ptr - local.get $value - f64.convert_i32_s - f64.store - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 3 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 0 + i32.shl + i32.add + i32.load8_s + local.set $value + i32.const 0 + drop + i32.const 0 + drop + local.get $ptr + local.get $value + f64.convert_i32_s + f64.store + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80687,124 +80304,122 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Float32Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Float32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Float32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 1 - i32.const 0 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 1 + i32.const 0 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - f32.load - local.set $value - i32.const 1 - drop - i32.const 1 - drop - local.get $ptr - local.get $value - local.get $value - f32.sub + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + f32.load + local.set $value + i32.const 1 + drop + i32.const 1 + drop + local.get $ptr + local.get $value + local.get $value + f32.sub + f32.const 0 + f32.eq + if (result i32) f32.const 0 - f32.eq - if (result i32) - f32.const 0 - f32.const 255 - local.get $value - f32.min - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 + f32.const 255 + local.get $value + f32.min + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 end + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80834,129 +80449,127 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Int32Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Int32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $12 - i32.store offset=8 - local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/typedarray/Int32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $12 global.get $~lib/memory/__stack_pointer local.get $12 i32.store offset=8 local.get $12 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $12 + global.get $~lib/memory/__stack_pointer + local.get $12 + i32.store offset=8 + local.get $12 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 1 - i32.eqz - drop - i32.const 1 - i32.const 4 - i32.le_u - drop - local.get $ptr - local.get $value - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.const 255 - local.get $value - i32.sub - i32.const 31 - i32.shr_s - local.get $value - i32.or - i32.and - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 1 + i32.eqz + drop + i32.const 1 + i32.const 4 + i32.le_u + drop + local.get $ptr + local.get $value + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.const 255 + local.get $value + i32.sub + i32.const 31 + i32.shr_s + local.get $value + i32.or + i32.and + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -80988,120 +80601,118 @@ global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - block $"~lib/typedarray/SET<~lib/typedarray/Uint8ClampedArray,~lib/typedarray/Uint32Array>|inlined.0" - global.get $~lib/memory/__stack_pointer - local.get $this - local.tee $target - i32.store - global.get $~lib/memory/__stack_pointer - local.get $source - local.tee $source|4 - i32.store offset=4 - local.get $offset - local.set $offset|5 - i32.const 0 - drop - local.get $source|4 - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint32Array#get:length - local.set $sourceLen - local.get $offset|5 - i32.const 0 - i32.lt_s - if (result i32) - i32.const 1 - else - local.get $sourceLen - local.get $offset|5 - i32.add - local.get $target - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/typedarray/Uint8ClampedArray#get:length - i32.gt_s - end - if - i32.const 336 - i32.const 608 - i32.const 1902 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $target - local.set $14 - global.get $~lib/memory/__stack_pointer - local.get $14 - i32.store offset=8 - local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart + global.get $~lib/memory/__stack_pointer + local.get $this + local.tee $target + i32.store + global.get $~lib/memory/__stack_pointer + local.get $source + local.tee $source|4 + i32.store offset=4 + local.get $offset + local.set $offset|5 + i32.const 0 + drop + local.get $source|4 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/typedarray/Uint32Array#get:length + local.set $sourceLen + local.get $offset|5 + i32.const 0 + i32.lt_s + if (result i32) + i32.const 1 + else + local.get $sourceLen local.get $offset|5 - i32.const 0 - i32.shl i32.add - local.set $targetStart - local.get $source|4 + local.get $target local.set $14 global.get $~lib/memory/__stack_pointer local.get $14 i32.store offset=8 local.get $14 - call $~lib/arraybuffer/ArrayBufferView#get:dataStart - local.set $sourceStart - i32.const 0 - i32.const 2 - i32.eq - drop - i32.const 0 - local.set $i - loop $for-loop|0 + call $~lib/typedarray/Uint8ClampedArray#get:length + i32.gt_s + end + if + i32.const 336 + i32.const 608 + i32.const 1902 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $target + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.get $offset|5 + i32.const 0 + i32.shl + i32.add + local.set $targetStart + local.get $source|4 + local.set $14 + global.get $~lib/memory/__stack_pointer + local.get $14 + i32.store offset=8 + local.get $14 + call $~lib/arraybuffer/ArrayBufferView#get:dataStart + local.set $sourceStart + i32.const 0 + i32.const 2 + i32.eq + drop + i32.const 0 + local.set $i + loop $for-loop|0 + local.get $i + local.get $sourceLen + i32.lt_s + if + local.get $targetStart local.get $i - local.get $sourceLen - i32.lt_s - if - local.get $targetStart - local.get $i - i32.const 0 - i32.shl - i32.add - local.set $ptr - local.get $sourceStart - local.get $i - i32.const 2 - i32.shl - i32.add - i32.load - local.set $value - i32.const 1 - drop - i32.const 0 - drop - i32.const 0 - i32.eqz - drop - local.get $ptr - i32.const 255 - local.tee $12 - local.get $value - local.tee $13 - local.get $12 - local.get $13 - i32.lt_u - select - i32.store8 - local.get $i - i32.const 1 - i32.add - local.set $i - br $for-loop|0 - end + i32.const 0 + i32.shl + i32.add + local.set $ptr + local.get $sourceStart + local.get $i + i32.const 2 + i32.shl + i32.add + i32.load + local.set $value + i32.const 1 + drop + i32.const 0 + drop + i32.const 0 + i32.eqz + drop + local.get $ptr + i32.const 255 + local.tee $12 + local.get $value + local.tee $13 + local.get $12 + local.get $13 + i32.lt_u + select + i32.store8 + local.get $i + i32.const 1 + i32.add + local.set $i + br $for-loop|0 end end global.get $~lib/memory/__stack_pointer @@ -81390,145 +81001,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -82155,145 +81764,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -83205,145 +82812,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -83970,145 +83575,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -84733,145 +84336,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -85498,145 +85099,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -86261,145 +85860,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -87026,145 +86623,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -87789,145 +87384,143 @@ local.set $top i32.const 0 local.set $startA - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $endA + local.get $hi + i32.lt_s + if local.get $endA + i32.const 1 + i32.add + local.set $startB + local.get $ptr + local.get $startB local.get $hi + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/extendRunRight + local.set $endB + local.get $endB + local.get $startB + i32.sub + i32.const 1 + i32.add + local.set $lenB + local.get $lenB + i32.const 32 i32.lt_s if - local.get $endA - i32.const 1 + local.get $hi + local.tee $27 + local.get $startB + i32.const 32 i32.add - local.set $startB + i32.const 1 + i32.sub + local.tee $28 + local.get $27 + local.get $28 + i32.lt_s + select + local.set $endB local.get $ptr local.get $startB - local.get $hi + local.get $endB + local.get $lenB local.get $comparator local.set $34 global.get $~lib/memory/__stack_pointer local.get $34 i32.store local.get $34 - call $~lib/util/sort/extendRunRight - local.set $endB - local.get $endB - local.get $startB - i32.sub - i32.const 1 - i32.add - local.set $lenB - local.get $lenB - i32.const 32 - i32.lt_s + call $~lib/util/sort/insertionSort + end + i32.const 0 + local.get $hi + local.get $startA + local.get $startB + local.get $endB + call $~lib/util/sort/nodePower + local.set $k + local.get $top + local.set $i|30 + loop $for-loop|3 + local.get $i|30 + local.get $k + i32.gt_u if - local.get $hi - local.tee $27 - local.get $startB - i32.const 32 - i32.add - i32.const 1 - i32.sub - local.tee $28 - local.get $27 - local.get $28 - i32.lt_s - select - local.set $endB - local.get $ptr - local.get $startB - local.get $endB - local.get $lenB - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/insertionSort - end - i32.const 0 - local.get $hi - local.get $startA - local.get $startB - local.get $endB - call $~lib/util/sort/nodePower - local.set $k - local.get $top - local.set $i|30 - loop $for-loop|3 + local.get $leftRunStartBuf local.get $i|30 - local.get $k - i32.gt_u + i32.const 2 + i32.shl + i32.add + i32.load + local.set $start + local.get $start + i32.const -1 + i32.ne if - local.get $leftRunStartBuf + local.get $ptr + local.get $start + local.get $leftRunEndBuf local.get $i|30 i32.const 2 i32.shl i32.add i32.load - local.set $start + i32.const 1 + i32.add + local.get $endA + local.get $buffer + local.get $comparator + local.set $34 + global.get $~lib/memory/__stack_pointer + local.get $34 + i32.store + local.get $34 + call $~lib/util/sort/mergeRuns local.get $start - i32.const -1 - i32.ne - if - local.get $ptr - local.get $start - local.get $leftRunEndBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.load - i32.const 1 - i32.add - local.get $endA - local.get $buffer - local.get $comparator - local.set $34 - global.get $~lib/memory/__stack_pointer - local.get $34 - i32.store - local.get $34 - call $~lib/util/sort/mergeRuns - local.get $start - local.set $startA - local.get $leftRunStartBuf - local.get $i|30 - i32.const 2 - i32.shl - i32.add - i32.const -1 - i32.store - end + local.set $startA + local.get $leftRunStartBuf local.get $i|30 - i32.const 1 - i32.sub - local.set $i|30 - br $for-loop|3 + i32.const 2 + i32.shl + i32.add + i32.const -1 + i32.store end + local.get $i|30 + i32.const 1 + i32.sub + local.set $i|30 + br $for-loop|3 end - local.get $leftRunStartBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $startA - i32.store - local.get $leftRunEndBuf - local.get $k - i32.const 2 - i32.shl - i32.add - local.get $endA - i32.store - local.get $startB - local.set $startA - local.get $endB - local.set $endA - local.get $k - local.set $top - br $while-continue|2 end + local.get $leftRunStartBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $startA + i32.store + local.get $leftRunEndBuf + local.get $k + i32.const 2 + i32.shl + i32.add + local.get $endA + i32.store + local.get $startB + local.set $startA + local.get $endB + local.set $endA + local.get $k + local.set $top + br $while-continue|2 end end local.get $top @@ -93628,24 +93221,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -93670,25 +93261,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 @@ -93797,22 +93386,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $out - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -93835,23 +93422,21 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.1 - local.get $out - local.set $buffer|8 - local.get $value - local.set $num|9 - local.get $decimals|7 - local.set $offset|10 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|8 - local.get $num|9 - i64.extend_i32_u - local.get $offset|10 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|8 + local.get $value + local.set $num|9 + local.get $decimals|7 + local.set $offset|10 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|8 + local.get $num|9 + i64.extend_i32_u + local.get $offset|10 + call $~lib/util/number/utoa_hex_lut else local.get $value i64.extend_i32_u @@ -93980,24 +93565,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.8 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -94012,24 +93595,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|10 - local.get $value - local.set $num|11 - local.get $decimals|9 - local.set $offset|12 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|10 - local.get $num|11 - local.get $offset|12 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|10 + local.get $value + local.set $num|11 + local.get $decimals|9 + local.set $offset|12 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|10 + local.get $num|11 + local.get $offset|12 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -94056,24 +93637,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|14 - local.get $value - local.set $num|15 - local.get $decimals|13 - local.set $offset|16 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|14 - local.get $num|15 - local.get $offset|16 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|14 + local.get $value + local.set $num|15 + local.get $decimals|13 + local.set $offset|16 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|14 + local.get $num|15 + local.get $offset|16 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix @@ -94193,22 +93772,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.10 - local.get $out - local.set $buffer - local.get $val32 - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.set $buffer + local.get $val32 + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $value call $~lib/util/number/decimalCount64High @@ -94221,22 +93798,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_dec_core|inlined.2 - local.get $out - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - local.get $offset|11 - call $~lib/util/number/utoa64_dec_lut - end + local.get $out + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + local.get $offset|11 + call $~lib/util/number/utoa64_dec_lut end else local.get $radix @@ -94261,22 +93836,20 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa64_hex_core|inlined.1 - local.get $out - local.set $buffer|13 - local.get $value - local.set $num|14 - local.get $decimals|12 - local.set $offset|15 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|13 - local.get $num|14 - local.get $offset|15 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.set $buffer|13 + local.get $value + local.set $num|14 + local.get $decimals|12 + local.set $offset|15 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|13 + local.get $num|14 + local.get $offset|15 + call $~lib/util/number/utoa_hex_lut else local.get $value local.get $radix diff --git a/tests/compiler/std/typedarray.release.wat b/tests/compiler/std/typedarray.release.wat index 5dd8ad2167..cfce31d9b4 100644 --- a/tests/compiler/std/typedarray.release.wat +++ b/tests/compiler/std/typedarray.release.wat @@ -1500,7 +1500,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $2 local.get $0 i32.const 4 i32.sub @@ -1533,7 +1532,6 @@ i32.const 1 i32.or i32.store - local.get $2 local.get $1 call $~lib/rt/tlsf/insertBlock ) @@ -2427,7 +2425,6 @@ i32.shl i32.add f64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -2437,11 +2434,8 @@ i32.shl i32.add f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -2460,14 +2454,10 @@ i32.add local.tee $6 f64.load offset=8 - local.set $5 local.get $6 f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -2535,14 +2525,10 @@ i32.add local.tee $1 f64.load offset=8 - local.set $5 local.get $1 f64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $10) @@ -5590,7 +5576,6 @@ local.get $1 i32.add i32.load8_s - local.set $5 local.get $1 i32.const 1 i32.add @@ -5598,11 +5583,8 @@ local.get $0 i32.add i32.load8_s - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -5619,14 +5601,10 @@ i32.add local.tee $5 i32.load8_s offset=1 - local.set $6 local.get $5 i32.load8_s - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -5688,14 +5666,10 @@ i32.add local.tee $1 i32.load8_s offset=1 - local.set $5 local.get $1 i32.load8_s - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6003,7 +5977,6 @@ local.get $1 i32.add i32.load8_u - local.set $5 local.get $1 i32.const 1 i32.add @@ -6011,11 +5984,8 @@ local.get $0 i32.add i32.load8_u - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6032,14 +6002,10 @@ i32.add local.tee $5 i32.load8_u offset=1 - local.set $6 local.get $5 i32.load8_u - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6101,14 +6067,10 @@ i32.add local.tee $1 i32.load8_u offset=1 - local.set $5 local.get $1 i32.load8_u - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6438,7 +6400,6 @@ i32.shl i32.add i32.load16_s - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -6448,11 +6409,8 @@ i32.shl i32.add i32.load16_s - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6471,14 +6429,10 @@ i32.add local.tee $5 i32.load16_s offset=2 - local.set $6 local.get $5 i32.load16_s - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6546,14 +6500,10 @@ i32.add local.tee $1 i32.load16_s offset=2 - local.set $5 local.get $1 i32.load16_s - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -6888,7 +6838,6 @@ i32.shl i32.add i32.load16_u - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -6898,11 +6847,8 @@ i32.shl i32.add i32.load16_u - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -6921,14 +6867,10 @@ i32.add local.tee $5 i32.load16_u offset=2 - local.set $6 local.get $5 i32.load16_u - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -6996,14 +6938,10 @@ i32.add local.tee $1 i32.load16_u offset=2 - local.set $5 local.get $1 i32.load16_u - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -7348,7 +7286,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -7358,11 +7295,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -7381,14 +7315,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -7456,14 +7386,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -7792,7 +7718,6 @@ i32.shl i32.add i32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -7802,11 +7727,8 @@ i32.shl i32.add i32.load - local.set $6 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $6 local.get $3 i32.load call_indirect (type $0) @@ -7825,14 +7747,10 @@ i32.add local.tee $5 i32.load offset=4 - local.set $6 local.get $5 i32.load - local.set $5 i32.const 2 global.set $~argumentsLength - local.get $6 - local.get $5 local.get $3 i32.load call_indirect (type $0) @@ -7900,14 +7818,10 @@ i32.add local.tee $1 i32.load offset=4 - local.set $5 local.get $1 i32.load - local.set $1 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $1 local.get $3 i32.load call_indirect (type $0) @@ -8241,7 +8155,6 @@ i32.shl i32.add i64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -8251,11 +8164,8 @@ i32.shl i32.add i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8274,14 +8184,10 @@ i32.add local.tee $6 i64.load offset=8 - local.set $5 local.get $6 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8349,14 +8255,10 @@ i32.add local.tee $1 i64.load offset=8 - local.set $5 local.get $1 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8692,7 +8594,6 @@ i32.shl i32.add i64.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -8702,11 +8603,8 @@ i32.shl i32.add i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8725,14 +8623,10 @@ i32.add local.tee $6 i64.load offset=8 - local.set $5 local.get $6 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -8800,14 +8694,10 @@ i32.add local.tee $1 i64.load offset=8 - local.set $5 local.get $1 i64.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $7) @@ -9143,7 +9033,6 @@ i32.shl i32.add f32.load - local.set $5 local.get $0 local.get $1 i32.const 1 @@ -9153,11 +9042,8 @@ i32.shl i32.add f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9176,14 +9062,10 @@ i32.add local.tee $6 f32.load offset=4 - local.set $5 local.get $6 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9251,14 +9133,10 @@ i32.add local.tee $1 f32.load offset=4 - local.set $5 local.get $1 f32.load - local.set $7 i32.const 2 global.set $~argumentsLength - local.get $5 - local.get $7 local.get $3 i32.load call_indirect (type $11) @@ -9711,20 +9589,16 @@ i32.store local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store - local.get $1 local.get $0 i32.load i32.sub - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#get:length (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -9750,12 +9624,10 @@ i32.store local.get $0 i32.load offset=8 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -9909,12 +9781,10 @@ i32.load offset=8 i32.const 1 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10026,12 +9896,10 @@ i32.load offset=8 i32.const 2 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10143,12 +10011,10 @@ i32.load offset=8 i32.const 3 i32.shr_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#constructor (param $0 i32) (result i32) (local $1 i32) @@ -10944,12 +10810,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#subarray (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -11709,18 +11573,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -11775,12 +11635,10 @@ local.get $0 local.get $1 call $~lib/typedarray/Float64Array#sort - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#__get (param $0 i32) (param $1 i32) (result f64) (local $2 f64) @@ -11829,12 +11687,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $~lib/typedarray/Uint8ClampedArray#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -11938,12 +11794,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -12092,12 +11946,10 @@ i32.store local.get $0 i32.load offset=12 - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#__get (param $0 i32) (param $1 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -12141,12 +11993,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/isInt8ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12235,12 +12085,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.ne br_if $folding-inner1 @@ -12594,12 +12442,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/isInt32ArrayEqual (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -12829,11 +12675,9 @@ i32.store offset=4 local.get $3 i32.load offset=4 - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 - local.get $4 local.get $0 i32.load offset=4 local.get $1 @@ -12888,12 +12732,10 @@ i32.const 0 local.get $1 call $~lib/typedarray/Int32Array#slice - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#copyWithin (param $0 i32) (param $1 i32) (param $2 i32) (param $3 i32) (result i32) (local $4 i32) @@ -13071,12 +12913,10 @@ local.get $2 local.get $3 call $~lib/typedarray/Int32Array#copyWithin - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#__set (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -13571,12 +13411,10 @@ i32.load offset=4 i32.add i32.load8_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13630,12 +13468,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8ClampedArray#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13689,12 +13525,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13752,12 +13586,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13815,12 +13647,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13878,12 +13708,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#at (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -13941,12 +13769,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) @@ -14005,12 +13831,10 @@ i32.shl i32.add i64.load - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/typedarray/Uint64Array#at (param $0 i32) (param $1 i32) (result i64) (local $2 i32) @@ -14069,12 +13893,10 @@ i32.shl i32.add i64.load - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/typedarray/Float32Array#at (param $0 i32) (param $1 i32) (result f32) (local $2 i32) @@ -14133,12 +13955,10 @@ i32.shl i32.add f32.load - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/typedarray/Float64Array#at (param $0 i32) (param $1 i32) (result f64) (local $2 i32) @@ -14197,12 +14017,10 @@ i32.shl i32.add f64.load - local.set $3 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 ) (func $~lib/typedarray/Uint8Array#reduceRight (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -14337,7 +14155,6 @@ i32.const 3 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14434,7 +14251,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14540,12 +14356,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" (local $0 i32) @@ -14598,7 +14412,6 @@ i32.const 3 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14695,7 +14508,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -14810,7 +14622,6 @@ i32.const 3 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -14907,7 +14718,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15017,12 +14827,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" (local $0 i32) @@ -15077,7 +14885,6 @@ i32.const 3 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15180,7 +14987,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15290,12 +15096,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" (local $0 i32) @@ -15350,7 +15154,6 @@ i32.const 3 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15453,7 +15256,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15570,7 +15372,6 @@ i32.const 3 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15673,7 +15474,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -15783,12 +15583,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" (local $0 i32) @@ -15843,7 +15641,6 @@ i32.const 3 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -15946,7 +15743,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16057,12 +15853,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" (local $0 i32) @@ -16117,7 +15911,6 @@ i64.const 3 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16220,7 +16013,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16331,12 +16123,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" (local $0 i32) @@ -16391,7 +16181,6 @@ i64.const 3 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16494,7 +16283,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16605,12 +16393,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" (local $0 i32) @@ -16665,7 +16451,6 @@ f32.const 3 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16768,7 +16553,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -16885,7 +16669,6 @@ f64.const 3 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -16988,7 +16771,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $5 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17118,7 +16900,6 @@ i32.const 5 call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17225,7 +17006,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17383,7 +17163,6 @@ i32.const 5 call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17490,7 +17269,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17648,7 +17426,6 @@ i32.const 5 call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -17755,7 +17532,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -17913,7 +17689,6 @@ i32.const 5 call $~lib/typedarray/Int16Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18029,7 +17804,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18187,7 +17961,6 @@ i32.const 5 call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18303,7 +18076,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18461,7 +18233,6 @@ i32.const 5 call $~lib/typedarray/Int32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18577,7 +18348,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -18735,7 +18505,6 @@ i32.const 5 call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -18851,7 +18620,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19009,7 +18777,6 @@ i64.const 5 call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19125,7 +18892,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19283,7 +19049,6 @@ i64.const 5 call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19399,7 +19164,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19557,7 +19321,6 @@ f32.const 5 call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19673,7 +19436,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -19831,7 +19593,6 @@ f64.const 5 call $~lib/typedarray/Float64Array#__set global.get $~lib/memory/__stack_pointer - local.set $6 global.get $~lib/memory/__stack_pointer local.get $8 i32.store offset=4 @@ -19947,7 +19708,6 @@ i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $6 local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer @@ -20117,12 +19877,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20202,12 +19960,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20289,12 +20045,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20376,12 +20130,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20463,12 +20215,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20550,12 +20300,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20637,12 +20385,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20724,12 +20470,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20811,12 +20555,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#some (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20898,12 +20640,10 @@ end i32.const 0 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#findIndex (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -20959,13 +20699,11 @@ local.get $3 i32.add i32.load8_s - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21042,13 +20780,11 @@ local.get $3 i32.add i32.load8_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21127,13 +20863,11 @@ i32.shl i32.add i32.load16_s - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21212,13 +20946,11 @@ i32.shl i32.add i32.load16_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21297,13 +21029,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21382,13 +21112,11 @@ i32.shl i32.add i32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21467,13 +21195,11 @@ i32.shl i32.add i64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21552,13 +21278,11 @@ i32.shl i32.add i64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21637,13 +21361,11 @@ i32.shl i32.add f32.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21722,13 +21444,11 @@ i32.shl i32.add f64.load - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -21806,13 +21526,11 @@ local.get $3 i32.add i32.load8_s - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -21890,13 +21608,11 @@ local.get $3 i32.add i32.load8_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -21976,13 +21692,11 @@ i32.shl i32.add i32.load16_s - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22062,13 +21776,11 @@ i32.shl i32.add i32.load16_u - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22148,13 +21860,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22234,13 +21944,11 @@ i32.shl i32.add i32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22320,13 +22028,11 @@ i32.shl i32.add i64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22406,13 +22112,11 @@ i32.shl i32.add i64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22492,13 +22196,11 @@ i32.shl i32.add f32.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22578,13 +22280,11 @@ i32.shl i32.add f64.load - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $4 local.get $2 local.get $0 local.get $1 @@ -22686,12 +22386,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22772,12 +22470,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22860,12 +22556,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint16Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -22948,12 +22642,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23036,12 +22728,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23124,12 +22814,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23212,12 +22900,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23300,12 +22986,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23388,12 +23072,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#every (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -23476,12 +23158,10 @@ end i32.const 1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>~anonymous|0" (param $0 i32) (param $1 i32) (param $2 i32) global.get $~lib/memory/__stack_pointer @@ -23606,13 +23286,11 @@ local.get $3 i32.add i32.load8_u - local.set $5 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=8 i32.const 3 global.set $~argumentsLength - local.get $5 local.get $2 local.get $0 local.get $1 @@ -24238,11 +23916,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int8Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24268,7 +23944,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24280,7 +23955,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -24560,11 +24234,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint8Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24591,7 +24263,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24602,7 +24273,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -24882,11 +24552,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint8ClampedArray#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -24913,7 +24581,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -24924,7 +24591,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int8Array#reverse local.tee $0 @@ -25340,11 +25006,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int16Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -25370,7 +25034,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -25381,7 +25044,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int16Array#reverse local.tee $0 @@ -25665,11 +25327,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint16Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -25696,7 +25356,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -25707,7 +25366,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int16Array#reverse local.tee $0 @@ -25998,7 +25656,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26010,7 +25667,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int32Array#reverse local.tee $0 @@ -26319,7 +25975,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26330,7 +25985,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int32Array#reverse local.tee $0 @@ -26701,11 +26355,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Int64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -26731,7 +26383,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -26742,7 +26393,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int64Array#reverse local.tee $0 @@ -27024,11 +26674,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Uint64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27054,7 +26702,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27065,7 +26712,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Int64Array#reverse local.tee $0 @@ -27436,11 +27082,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Float32Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27466,7 +27110,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27477,7 +27120,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Float32Array#reverse local.tee $0 @@ -27741,11 +27383,9 @@ local.get $3 local.get $0 call $~lib/typedarray/Float64Array#__get - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 7616 i32.store offset=4 - local.get $2 i32.const 7616 local.get $4 i32.const 1 @@ -27771,7 +27411,6 @@ end end global.get $~lib/memory/__stack_pointer - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=16 @@ -27783,7 +27422,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - local.get $0 local.get $1 call $~lib/typedarray/Float64Array#reverse local.tee $0 @@ -27941,12 +27579,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -28029,12 +27665,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int8Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -28080,12 +27714,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int8Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" (local $0 i32) @@ -29775,12 +29407,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -29865,12 +29495,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -29916,12 +29544,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int16Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" (local $0 i32) @@ -31074,12 +30700,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31162,12 +30786,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -31213,12 +30835,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int32Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" (local $0 i32) @@ -31837,12 +31457,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#lastIndexOf (param $0 i32) (param $1 i32) (param $2 i32) (result i32) (local $3 i32) @@ -31925,12 +31543,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint32Array#lastIndexOf@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -31976,12 +31592,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Uint32Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" (local $0 i32) @@ -32599,12 +32213,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) @@ -32687,12 +32299,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) (local $2 i32) @@ -32738,12 +32348,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Int64Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" (local $0 i32) @@ -33362,12 +32970,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#lastIndexOf (param $0 i32) (param $1 i64) (param $2 i32) (result i32) (local $3 i32) @@ -33450,12 +33056,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint64Array#lastIndexOf@varargs (param $0 i32) (param $1 i64) (result i32) (local $2 i32) @@ -33501,12 +33105,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Uint64Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" (local $0 i32) @@ -34125,12 +33727,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#lastIndexOf (param $0 i32) (param $1 f32) (param $2 i32) (result i32) (local $3 i32) @@ -34213,12 +33813,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float32Array#lastIndexOf@varargs (param $0 i32) (param $1 f32) (result i32) (local $2 i32) @@ -34264,12 +33862,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Float32Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" (local $0 i32) @@ -34888,12 +34484,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#lastIndexOf (param $0 i32) (param $1 f64) (param $2 i32) (result i32) (local $3 i32) @@ -34976,12 +34570,10 @@ end i32.const -1 end - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Float64Array#lastIndexOf@varargs (param $0 i32) (param $1 f64) (result i32) (local $2 i32) @@ -35027,12 +34619,10 @@ local.get $1 local.get $2 call $~lib/typedarray/Float64Array#lastIndexOf - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" (local $0 i32) @@ -36236,12 +35826,10 @@ i32.store offset=4 local.get $0 call $~lib/typedarray/Uint8Array#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Int16Array#join (param $0 i32) (result i32) (local $1 i32) @@ -37712,25 +37300,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinIntegerArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -37976,25 +37558,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/util/string/joinFloatArray (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -38237,25 +37813,19 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 9584 i32.store - local.get $1 - local.get $0 call $~lib/util/string/joinFloatArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/typedarray/Uint8Array.wrap@varargs (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -38568,7 +38138,6 @@ local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38581,7 +38150,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -38592,7 +38160,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -38663,7 +38230,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -38788,7 +38354,6 @@ local.get $2 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $2 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -38801,7 +38366,6 @@ global.get $~lib/memory/__stack_pointer local.get $2 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -38812,7 +38376,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -38883,7 +38446,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39007,7 +38569,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39020,7 +38581,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39031,7 +38591,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39112,7 +38671,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39237,7 +38795,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39250,7 +38807,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39261,7 +38817,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39342,7 +38897,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39465,7 +39019,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39478,7 +39031,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39489,7 +39041,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39570,7 +39121,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39693,7 +39243,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $3 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $4 @@ -39706,7 +39255,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $3 local.get $0 local.get $4 local.get $5 @@ -39717,7 +39265,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $3 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -39798,7 +39345,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $3 local.get $5 i32.store offset=20 i32.const 0 @@ -39923,7 +39469,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -39936,7 +39481,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -39947,7 +39491,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40028,7 +39571,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40153,7 +39695,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40166,7 +39707,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40177,7 +39717,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40258,7 +39797,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40383,7 +39921,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40396,7 +39933,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40407,7 +39943,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40488,7 +40023,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -40613,7 +40147,6 @@ local.get $1 i32.store offset=12 global.get $~lib/memory/__stack_pointer - local.set $4 local.get $1 call $~lib/arraybuffer/ArrayBufferView#get:byteOffset local.set $5 @@ -40626,7 +40159,6 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=12 - local.get $4 local.get $0 local.get $5 local.get $6 @@ -40637,7 +40169,6 @@ local.tee $0 i32.store offset=16 global.get $~lib/memory/__stack_pointer - local.set $4 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -40718,7 +40249,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $4 local.get $6 i32.store offset=20 i32.const 0 @@ -41157,11 +40687,9 @@ i32.store offset=8 local.get $0 i32.load offset=4 - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $2 @@ -41326,11 +40854,9 @@ i32.load offset=4 i32.const 7 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 11264 i32.store offset=8 - local.get $0 i32.const 11268 i32.load local.get $1 @@ -41804,12 +41330,10 @@ i32.load offset=4 i32.add i32.load8_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint8Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -43431,12 +42955,10 @@ i32.shl i32.add i32.load16_s - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int16Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -43786,11 +43308,9 @@ i32.load offset=4 i32.const 8 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $2 @@ -44369,12 +43889,10 @@ i32.shl i32.add i32.load16_u - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint16Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -44984,11 +44502,9 @@ i32.const 2 i32.shl i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $3 @@ -45029,12 +44545,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -45993,12 +45507,10 @@ i32.shl i32.add i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -46668,12 +46180,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Int64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -46833,11 +46343,9 @@ i32.load offset=4 i32.const 48 i32.add - local.set $0 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $0 local.get $1 i32.load offset=4 local.get $2 @@ -47607,12 +47115,10 @@ i32.shl i32.add i64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Uint64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -48184,12 +47690,10 @@ i32.shl i32.add f32.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float32Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -48944,12 +48448,10 @@ i32.shl i32.add f64.load - local.set $2 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $std/typedarray/valuesEqual<~lib/typedarray/Float64Array> (param $0 i32) (param $1 i32) (local $2 i32) @@ -50205,18 +49707,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -50682,18 +50180,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int8Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -51161,18 +50655,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -51640,18 +51130,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int16Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -52119,18 +51605,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -52598,18 +52080,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -53079,18 +52557,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -53560,18 +53034,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int64Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -54042,18 +53512,14 @@ i32.store offset=4 local.get $0 i32.load offset=4 - local.set $2 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 local.get $0 call $~lib/typedarray/Int32Array#get:length - local.set $3 global.get $~lib/memory/__stack_pointer local.get $1 i32.store - local.get $2 - local.get $3 local.get $1 call $~lib/util/sort/SORT global.get $~lib/memory/__stack_pointer @@ -54089,8123 +53555,12105 @@ block $folding-inner19 block $folding-inner18 block $folding-inner17 - block - block $folding-inner13 - block $folding-inner12 - block $folding-inner11 - block $folding-inner10 - block $folding-inner9 - block $folding-inner8 - block $folding-inner7 - block $folding-inner6 - block $folding-inner4 - block $folding-inner3 - block $folding-inner2 - block - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 + block $folding-inner13 + block $folding-inner12 + block $folding-inner11 + block $folding-inner10 + block $folding-inner9 + block $folding-inner8 + block $folding-inner7 + block $folding-inner6 + block $folding-inner4 + block $folding-inner3 + block $folding-inner2 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 124 + memory.fill + memory.size + i32.const 16 + i32.shl + i32.const 49088 + i32.sub + i32.const 1 + i32.shr_u + global.set $~lib/rt/itcms/threshold + i32.const 1284 + i32.const 1280 + i32.store + i32.const 1288 + i32.const 1280 + i32.store + i32.const 1280 + global.set $~lib/rt/itcms/pinSpace + i32.const 1316 + i32.const 1312 + i32.store + i32.const 1320 + i32.const 1312 + i32.store + i32.const 1312 + global.set $~lib/rt/itcms/toSpace + i32.const 1460 + i32.const 1456 + i32.store + i32.const 1464 + i32.const 1456 + i32.store + i32.const 1456 + global.set $~lib/rt/itcms/fromSpace + i32.const 0 + call $std/typedarray/testInstantiate + i32.const 5 + call $std/typedarray/testInstantiate + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 95 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 96 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 97 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 98 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 99 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 100 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#subarray + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 103 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 104 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 105 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 106 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + call $~lib/typedarray/Float64Array#constructor + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + f64.const 7 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 5 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 6 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 7 + f64.const 8 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Float64Array#subarray + local.tee $6 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int64Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 122 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 16 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 123 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 32 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 124 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + local.get $6 + call $~lib/typedarray/Float64Array#sort@varargs + drop + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 4 + f64.eq + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 5 + f64.eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 6 + f64.eq + else + i32.const 0 + end + if (result i32) + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + call $~lib/typedarray/Float64Array#__get + f64.const 7 + f64.eq + else + i32.const 0 + end + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 126 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $6 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const -32 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 256 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + if + i32.const 0 + i32.const 1568 + i32.const 135 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 136 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 255 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 137 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1728 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 149 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1808 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 152 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1840 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 155 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const -2 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1872 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 158 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int8Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1904 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 161 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $7 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $7 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int8Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 165 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 166 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 167 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 3 + i32.const 0 + i32.const 16 + i32.const 1936 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $7 + local.get $8 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 168 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 0 + i32.const 16 + i32.const 1968 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt8ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 169 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2000 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 181 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2048 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 184 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 0 + i32.const -3 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2096 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 187 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const -2 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2144 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 190 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + i32.const 0 + call $~lib/typedarray/Int32Array#fill + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2192 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 193 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $7 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + local.get $7 + i32.const 0 + i32.const 0 + call $~lib/typedarray/Int32Array#fill@varargs + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 197 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 198 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 199 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 3 + i32.const 2 + i32.const 17 + i32.const 2240 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $7 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 200 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2272 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 201 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 6 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store offset=36 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 5 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 6 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=40 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 222 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 223 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 224 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 5 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 225 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 5 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=44 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 228 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 229 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 230 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 231 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#subarray + local.tee $6 + i32.store offset=48 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + call $~lib/typedarray/Int8Array#__get + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 234 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 235 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 236 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 237 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $7 + i32.store offset=56 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2320 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 248 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2368 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 250 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2416 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 252 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 2 + i32.const 2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2464 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 254 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2512 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 256 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 1 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2560 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 258 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 1 + i32.const 2 + i32.const 4 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2608 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 260 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const 0 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2656 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 262 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const 0 + i32.const -2 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2704 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 264 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -2 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2752 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 266 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + local.get $6 + i32.const -4 + i32.const -3 + i32.const -1 + call $~lib/typedarray/Int32Array#copyWithin + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2800 + call $~lib/rt/__newArray + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=20 + local.get $6 + local.get $8 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 268 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $7 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $6 + i32.store offset=52 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=60 + i32.const 2 + global.set $~argumentsLength + local.get $6 + i32.const -4 + i32.const -3 + call $~lib/typedarray/Int32Array#copyWithin@varargs + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 5 + i32.const 2 + i32.const 17 + i32.const 2848 + call $~lib/rt/__newArray + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + local.get $6 + local.get $7 + call $std/typedarray/isInt32ArrayEqual + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 270 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store offset=64 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#subarray + local.tee $7 + i32.store offset=68 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 282 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 283 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 284 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 1 + i32.const 3 + call $~lib/typedarray/Int32Array#slice + local.tee $8 + i32.store offset=72 + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 287 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 288 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/typedarray/Int32Array#get:length + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 289 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 290 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $8 + i32.store offset=4 + local.get $8 + i32.load offset=8 + i32.const 8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 291 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#slice + local.tee $7 + i32.store offset=76 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 294 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 295 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + if + i32.const 0 + i32.const 1568 + i32.const 296 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + i32.const 4 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 297 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $6 + call $~lib/typedarray/Int32Array#slice@varargs + local.tee $7 + i32.store offset=80 + local.get $6 + local.get $7 + i32.eq + if + i32.const 0 + i32.const 1568 + i32.const 300 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.get $8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 301 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.get $8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 302 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.load offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.load offset=8 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 303 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2896 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + local.set $8 + loop $for-loop|0 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $0 + local.get $7 + i32.add + i32.load8_s + local.set $9 global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 124 - memory.fill - memory.size - i32.const 16 - i32.shl - i32.const 49088 - i32.sub + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 + local.get $6 + i32.const 2896 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 i32.const 1 - i32.shr_u - global.set $~lib/rt/itcms/threshold - i32.const 1284 - i32.const 1280 - i32.store - i32.const 1288 - i32.const 1280 - i32.store - i32.const 1280 - global.set $~lib/rt/itcms/pinSpace - i32.const 1316 - i32.const 1312 - i32.store - i32.const 1320 - i32.const 1312 - i32.store - i32.const 1312 - global.set $~lib/rt/itcms/toSpace - i32.const 1460 - i32.const 1456 - i32.store - i32.const 1464 - i32.const 1456 - i32.store - i32.const 1456 - global.set $~lib/rt/itcms/fromSpace - i32.const 0 - call $std/typedarray/testInstantiate - i32.const 5 - call $std/typedarray/testInstantiate - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store + i32.add + local.set $0 + br $for-loop|0 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2928 + i32.store offset=8 + local.get $0 + i32.const 2928 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2960 + i32.store offset=8 + local.get $0 + i32.const 2960 + call $~lib/typedarray/Uint8Array#reduce + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2992 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|02 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_s + local.set $9 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 local.get $6 - i32.const 0 + i32.const 2992 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 i32.const 1 - call $~lib/typedarray/Int32Array#__set + i32.add + local.set $0 + br $for-loop|02 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3024 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + local.set $8 + loop $for-loop|04 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $9 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 local.get $6 + i32.const 3024 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 i32.const 1 + i32.add + local.set $0 + br $for-loop|04 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3056 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|06 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 i32.const 2 - call $~lib/typedarray/Int32Array#__set + i32.shl + i32.add + i32.load + local.set $9 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 local.get $6 + i32.const 3056 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|06 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3088 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + loop $for-loop|08 + local.get $0 + local.get $8 + i32.lt_s + if + local.get $7 + local.get $0 i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set + i32.shl + i32.add + i32.load + local.set $9 global.get $~lib/memory/__stack_pointer local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 95 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $9 + local.get $0 local.get $6 - i32.store offset=4 + i32.const 3088 + i32.load + call_indirect (type $6) + local.set $1 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|08 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3120 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|010 + local.get $0 + local.get $7 + i32.lt_s + if local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 96 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3120 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|010 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3152 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|012 + local.get $0 + local.get $7 + i32.lt_s + if local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 97 - i32.const 3 - call $~lib/builtins/abort - unreachable - end + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int32Array#__get + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 + local.get $0 + local.get $1 + i32.const 3152 + i32.load + call_indirect (type $17) + local.set $3 + local.get $0 i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 98 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 + i32.add + local.set $0 + br $for-loop|012 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3184 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|014 + local.get $0 + local.get $7 + i32.lt_s + if local.get $6 - i32.const 1 - call $~lib/typedarray/Int32Array#__get + local.get $0 i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 99 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 100 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#subarray - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 103 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 104 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 105 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 106 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - call $~lib/typedarray/Float64Array#constructor - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - f64.const 7 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 6 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 7 - f64.const 8 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Float64Array#subarray - local.tee $6 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int64Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 122 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 16 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 123 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 32 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 124 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - local.get $6 - call $~lib/typedarray/Float64Array#sort@varargs - drop - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 4 - f64.eq - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 5 - f64.eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 6 - f64.eq - else - i32.const 0 - end - if (result i32) - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - call $~lib/typedarray/Float64Array#__get - f64.const 7 - f64.eq - else - i32.const 0 - end - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 126 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $6 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const -32 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 256 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - if - i32.const 0 - i32.const 1568 - i32.const 135 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 136 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 255 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 137 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1728 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 149 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1808 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 152 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1840 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 155 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const -2 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1872 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 158 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int8Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1904 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 161 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $7 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $7 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int8Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 165 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 166 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 167 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 3 - i32.const 0 - i32.const 16 - i32.const 1936 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $7 - local.get $8 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 168 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 0 - i32.const 16 - i32.const 1968 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt8ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 169 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2000 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 181 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2048 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 184 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 0 - i32.const -3 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2096 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 187 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const -2 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2144 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 190 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - i32.const 0 - call $~lib/typedarray/Int32Array#fill - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2192 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 193 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $7 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - local.get $7 - i32.const 0 - i32.const 0 - call $~lib/typedarray/Int32Array#fill@varargs - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 197 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 198 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 199 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 3 - i32.const 2 - i32.const 17 - i32.const 2240 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $7 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 200 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2272 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 201 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 6 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store offset=36 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 5 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 6 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=40 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 222 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 223 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 224 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 5 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 225 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 5 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=44 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 228 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 229 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 230 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 231 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#subarray - local.tee $6 - i32.store offset=48 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 234 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 235 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 236 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.load offset=8 - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 237 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $7 - i32.store offset=56 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2320 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 248 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2368 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 250 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2416 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 252 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 2 - i32.const 2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2464 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 254 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2512 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 256 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 1 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2560 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 258 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 1 - i32.const 2 - i32.const 4 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2608 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 260 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const 0 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2656 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 262 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const 0 - i32.const -2 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2704 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 264 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -2 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2752 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 266 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - local.get $6 - i32.const -4 - i32.const -3 - i32.const -1 - call $~lib/typedarray/Int32Array#copyWithin - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2800 - call $~lib/rt/__newArray - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=20 - local.get $6 - local.get $8 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 268 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - i32.const 1 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $7 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $6 - i32.store offset=52 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=60 - i32.const 2 - global.set $~argumentsLength - local.get $6 - i32.const -4 - i32.const -3 - call $~lib/typedarray/Int32Array#copyWithin@varargs - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 5 - i32.const 2 - i32.const 17 - i32.const 2848 - call $~lib/rt/__newArray - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 - local.get $6 - local.get $7 - call $std/typedarray/isInt32ArrayEqual - i32.eqz - if - i32.const 0 - i32.const 1568 - i32.const 270 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store offset=64 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#subarray - local.tee $7 - i32.store offset=68 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 282 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 283 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 12 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 284 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.const 1 - i32.const 3 - call $~lib/typedarray/Int32Array#slice - local.tee $8 - i32.store offset=72 - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 287 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 288 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/typedarray/Int32Array#get:length - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 289 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 290 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $8 - i32.store offset=4 - local.get $8 - i32.load offset=8 - i32.const 8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 291 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#slice - local.tee $7 - i32.store offset=76 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 294 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 295 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - if - i32.const 0 - i32.const 1568 - i32.const 296 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - i32.const 4 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 297 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - local.get $6 - call $~lib/typedarray/Int32Array#slice@varargs - local.tee $7 - i32.store offset=80 - local.get $6 - local.get $7 - i32.eq - if - i32.const 0 - i32.const 1568 - i32.const 300 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.get $8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 301 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.get $8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 302 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=4 - local.get $7 - i32.load offset=8 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $7 - local.get $6 - i32.load offset=8 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 303 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int8Array,i8>$7" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2896 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - local.set $8 - loop $for-loop|0 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $0 - local.get $7 - i32.add - i32.load8_s - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 - local.get $0 - local.get $6 - i32.const 2896 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2928 - i32.store offset=8 - local.get $0 - i32.const 2928 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2960 - i32.store offset=8 - local.get $0 - i32.const 2960 - call $~lib/typedarray/Uint8Array#reduce - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int16Array,i16>$8" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2992 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|02 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 - local.get $0 - local.get $6 - i32.const 2992 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|02 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint16Array,u16>$9" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3024 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - local.set $8 - loop $for-loop|04 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 - local.get $0 - local.get $6 - i32.const 3024 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|04 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int32Array,i32>$10" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3056 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|06 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 - local.get $0 - local.get $6 - i32.const 3056 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|06 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint32Array,u32>$11" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3088 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - loop $for-loop|08 - local.get $0 - local.get $8 - i32.lt_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $9 - local.get $0 - local.get $6 - i32.const 3088 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|08 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Int64Array,i64>$12" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3120 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|010 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 - local.get $0 - local.get $1 - i32.const 3120 - i32.load - call_indirect (type $17) - local.set $3 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|010 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Uint64Array,u64>$13" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3152 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|012 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 - local.get $0 - local.get $1 - i32.const 3152 - i32.load - call_indirect (type $17) - local.set $3 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|012 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Float32Array,f32>$14" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3184 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|014 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $4 - local.get $11 - local.get $0 - local.get $1 - i32.const 3184 - i32.load - call_indirect (type $22) - local.set $4 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|014 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - f32.const 6 - f32.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduce<~lib/typedarray/Float64Array,f64>$15" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3216 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|016 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $12 - local.get $0 - local.get $1 - i32.const 3216 - i32.load - call_indirect (type $23) - local.set $5 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|016 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - f64.const 6 - f64.ne - br_if $folding-inner18 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int8Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int8Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int8Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint8Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint8Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint8ClampedArray#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int16Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int16Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint16Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint16Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int32Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int32Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int32Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint32Array#at - i32.const 3 - i32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint32Array#at - i32.const 1 - i32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Int64Array#at - i64.const 3 - i64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Int64Array#at - i64.const 1 - i64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Uint64Array#at - i64.const 3 - i64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Uint64Array#at - i64.const 1 - i64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Float32Array#at - f32.const 3 - f32.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Float32Array#at - f32.const 1 - f32.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner2 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -1 - call $~lib/typedarray/Float64Array#at - f64.const 3 - f64.ne - br_if $folding-inner3 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const -3 - call $~lib/typedarray/Float64Array#at - f64.const 1 - f64.ne - br_if $folding-inner4 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int8Array,i8>$16" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3248 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int8Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|018 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $0 - local.get $7 - i32.add - i32.load8_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 - local.get $0 - local.get $6 - i32.const 3248 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|018 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3280 - i32.store offset=8 - local.get $0 - i32.const 3280 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3312 - i32.store offset=8 - local.get $0 - i32.const 3312 - call $~lib/typedarray/Uint8Array#reduceRight - i32.const 255 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int16Array,i16>$17" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3344 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|020 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 - local.get $0 - local.get $6 - i32.const 3344 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|020 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint16Array,u16>$18" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3376 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int16Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|022 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 - local.get $0 - local.get $6 - i32.const 3376 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|022 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 65535 - i32.and - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int32Array,i32>$19" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3408 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|024 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 - local.get $0 - local.get $6 - i32.const 3408 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|024 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint32Array,u32>$20" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $6 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3440 - i32.store offset=4 - i32.const 0 - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - local.get $6 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|026 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $7 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $1 - local.get $8 - local.get $0 - local.get $6 - i32.const 3440 - i32.load - call_indirect (type $6) - local.set $1 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|026 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $1 - i32.const 6 - i32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Int64Array,i64>$21" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3472 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|028 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 - local.get $0 - local.get $1 - i32.const 3472 - i32.load - call_indirect (type $17) - local.set $3 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|028 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - i64.const 0 - local.set $3 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Uint64Array,u64>$22" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3504 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|030 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $10 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $3 - local.get $10 - local.get $0 - local.get $1 - i32.const 3504 - i32.load - call_indirect (type $17) - local.set $3 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|030 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $3 - i64.const 6 - i64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - f32.const 0 - local.set $4 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Float32Array,f32>$23" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3536 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|032 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $11 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $4 - local.get $11 - local.get $0 - local.get $1 - i32.const 3536 - i32.load - call_indirect (type $22) - local.set $4 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|032 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $4 - f32.const 6 - f32.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - f64.const 0 - local.set $5 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testReduceRight<~lib/typedarray/Float64Array,f64>$24" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3568 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - i32.const 1 - i32.sub - local.set $0 - loop $for-loop|034 - local.get $0 - i32.const 0 - i32.ge_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $12 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 4 - global.set $~argumentsLength - local.get $5 - local.get $12 - local.get $0 - local.get $1 - i32.const 3568 - i32.load - call_indirect (type $23) - local.set $5 - local.get $0 - i32.const 1 - i32.sub - local.set $0 - br $for-loop|034 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $5 - f64.const 6 - f64.ne - br_if $folding-inner20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4304 - i32.store offset=8 - local.get $0 - i32.const 4304 - call $~lib/typedarray/Int8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4336 - i32.store offset=8 - local.get $0 - i32.const 4336 - call $~lib/typedarray/Int8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4368 - i32.store offset=8 - local.get $0 - i32.const 4368 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4400 - i32.store offset=8 - local.get $0 - i32.const 4400 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4432 - i32.store offset=8 - local.get $0 - i32.const 4432 - call $~lib/typedarray/Uint8Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4464 - i32.store offset=8 - local.get $0 - i32.const 4464 - call $~lib/typedarray/Uint8Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4496 - i32.store offset=8 - local.get $0 - i32.const 4496 - call $~lib/typedarray/Int16Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4528 - i32.store offset=8 - local.get $0 - i32.const 4528 - call $~lib/typedarray/Int16Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4560 - i32.store offset=8 - local.get $0 - i32.const 4560 - call $~lib/typedarray/Uint16Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4592 - i32.store offset=8 - local.get $0 - i32.const 4592 - call $~lib/typedarray/Uint16Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4624 - i32.store offset=8 - local.get $0 - i32.const 4624 - call $~lib/typedarray/Int32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4656 - i32.store offset=8 - local.get $0 - i32.const 4656 - call $~lib/typedarray/Int32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4688 - i32.store offset=8 - local.get $0 - i32.const 4688 - call $~lib/typedarray/Uint32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4720 - i32.store offset=8 - local.get $0 - i32.const 4720 - call $~lib/typedarray/Uint32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4752 - i32.store offset=8 - local.get $0 - i32.const 4752 - call $~lib/typedarray/Int64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4784 - i32.store offset=8 - local.get $0 - i32.const 4784 - call $~lib/typedarray/Int64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4816 - i32.store offset=8 - local.get $0 - i32.const 4816 - call $~lib/typedarray/Uint64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4848 - i32.store offset=8 - local.get $0 - i32.const 4848 - call $~lib/typedarray/Uint64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4880 - i32.store offset=8 - local.get $0 - i32.const 4880 - call $~lib/typedarray/Float32Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=8 - local.get $0 - i32.const 4912 - call $~lib/typedarray/Float32Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=8 - local.get $0 - i32.const 4944 - call $~lib/typedarray/Float64Array#some - i32.eqz - br_if $folding-inner6 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - local.get $0 - i32.const 4976 - call $~lib/typedarray/Float64Array#some - br_if $folding-inner7 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5008 - i32.store offset=8 - local.get $0 - i32.const 5008 - call $~lib/typedarray/Int8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5040 - i32.store offset=8 - local.get $0 - i32.const 5040 - call $~lib/typedarray/Int8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5072 - i32.store offset=8 - local.get $0 - i32.const 5072 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5104 - i32.store offset=8 - local.get $0 - i32.const 5104 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5136 - i32.store offset=8 - local.get $0 - i32.const 5136 - call $~lib/typedarray/Uint8Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5168 - i32.store offset=8 - local.get $0 - i32.const 5168 - call $~lib/typedarray/Uint8Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5200 - i32.store offset=8 - local.get $0 - i32.const 5200 - call $~lib/typedarray/Int16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5232 - i32.store offset=8 - local.get $0 - i32.const 5232 - call $~lib/typedarray/Int16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5264 - i32.store offset=8 - local.get $0 - i32.const 5264 - call $~lib/typedarray/Uint16Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5296 - i32.store offset=8 - local.get $0 - i32.const 5296 - call $~lib/typedarray/Uint16Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5328 - i32.store offset=8 - local.get $0 - i32.const 5328 - call $~lib/typedarray/Int32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=8 - local.get $0 - i32.const 5360 - call $~lib/typedarray/Int32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=8 - local.get $0 - i32.const 5392 - call $~lib/typedarray/Uint32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5424 - i32.store offset=8 - local.get $0 - i32.const 5424 - call $~lib/typedarray/Uint32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5456 - i32.store offset=8 - local.get $0 - i32.const 5456 - call $~lib/typedarray/Int64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=8 - local.get $0 - i32.const 5488 - call $~lib/typedarray/Int64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5520 - i32.store offset=8 - local.get $0 - i32.const 5520 - call $~lib/typedarray/Uint64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store offset=8 - local.get $0 - i32.const 5552 - call $~lib/typedarray/Uint64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5584 - i32.store offset=8 - local.get $0 - i32.const 5584 - call $~lib/typedarray/Float32Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5616 - i32.store offset=8 - local.get $0 - i32.const 5616 - call $~lib/typedarray/Float32Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 - local.get $0 - i32.const 5648 - call $~lib/typedarray/Float64Array#findIndex - i32.const 1 - i32.ne - br_if $folding-inner8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5680 - i32.store offset=8 - local.get $0 - i32.const 5680 - call $~lib/typedarray/Float64Array#findIndex - i32.const -1 - i32.ne - br_if $folding-inner9 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5712 - i32.store offset=8 - local.get $0 - i32.const 5712 - call $~lib/typedarray/Int8Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5744 - i32.store offset=8 - local.get $0 - i32.const 5744 - call $~lib/typedarray/Int8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5776 - i32.store offset=8 - local.get $0 - i32.const 5776 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5808 - i32.store offset=8 - local.get $0 - i32.const 5808 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 + f32.load + local.set $11 global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer + i32.const 4 + global.set $~argumentsLength + local.get $4 + local.get $11 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5840 - i32.store offset=8 + local.get $1 + i32.const 3184 + i32.load + call_indirect (type $22) + local.set $4 local.get $0 - i32.const 5840 - call $~lib/typedarray/Uint8Array#findLastIndex i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5872 - i32.store offset=8 - local.get $0 - i32.const 5872 - call $~lib/typedarray/Uint8Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + local.set $0 + br $for-loop|014 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + f32.const 6 + f32.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3216 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|016 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 2 i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5904 - i32.store offset=8 - local.get $0 - i32.const 5904 - call $~lib/typedarray/Int16Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5936 - i32.store offset=8 - local.get $0 - i32.const 5936 - call $~lib/typedarray/Int16Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + f64.load + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $12 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 5968 - i32.store offset=8 + local.get $1 + i32.const 3216 + i32.load + call_indirect (type $23) + local.set $5 local.get $0 - i32.const 5968 - call $~lib/typedarray/Uint16Array#findLastIndex i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6000 - i32.store offset=8 - local.get $0 - i32.const 6000 - call $~lib/typedarray/Uint16Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6032 - i32.store offset=8 - local.get $0 - i32.const 6032 - call $~lib/typedarray/Int32Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6064 - i32.store offset=8 + local.set $0 + br $for-loop|016 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + f64.const 6 + f64.ne + br_if $folding-inner18 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint8ClampedArray#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint16Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint16Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint32Array#at + i32.const 3 + i32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint32Array#at + i32.const 1 + i32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Int64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Int64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Uint64Array#at + i64.const 3 + i64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Uint64Array#at + i64.const 1 + i64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float32Array#at + f32.const 3 + f32.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float32Array#at + f32.const 1 + f32.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner2 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -1 + call $~lib/typedarray/Float64Array#at + f64.const 3 + f64.ne + br_if $folding-inner3 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const -3 + call $~lib/typedarray/Float64Array#at + f64.const 1 + f64.ne + br_if $folding-inner4 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3248 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int8Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|018 + local.get $0 + i32.const 0 + i32.ge_s + if local.get $0 - i32.const 6064 - call $~lib/typedarray/Int32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $7 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load8_s + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $6 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 local.get $0 - i32.store offset=4 + local.get $6 + i32.const 3248 + i32.load + call_indirect (type $6) + local.set $1 local.get $0 - i32.const 0 i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.sub + local.set $0 + br $for-loop|018 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3280 + i32.store offset=8 + local.get $0 + i32.const 3280 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3312 + i32.store offset=8 + local.get $0 + i32.const 3312 + call $~lib/typedarray/Uint8Array#reduceRight + i32.const 255 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3344 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|020 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 local.get $0 i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set + i32.shl + i32.add + i32.load16_s + local.set $8 global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 local.get $0 - i32.store offset=4 + local.get $6 + i32.const 3344 + i32.load + call_indirect (type $6) + local.set $1 local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 1 + i32.sub + local.set $0 + br $for-loop|020 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3376 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int16Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|022 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 local.get $0 - i32.store offset=4 + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 6096 + local.get $6 i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 local.get $0 - i32.const 6096 - call $~lib/typedarray/Uint32Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3376 + i32.load + call_indirect (type $6) + local.set $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6128 - i32.store offset=8 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|022 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 65535 + i32.and + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3408 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|024 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 local.get $0 - i32.const 6128 - call $~lib/typedarray/Uint32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 2 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $6 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 local.get $0 - i32.store offset=4 + local.get $6 + i32.const 3408 + i32.load + call_indirect (type $6) + local.set $1 local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.sub + local.set $0 + br $for-loop|024 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $6 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3440 + i32.store offset=4 + i32.const 0 + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=8 + local.get $6 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|026 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $7 local.get $0 i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.shl + i32.add + i32.load + local.set $8 global.get $~lib/memory/__stack_pointer - i32.const 6160 + local.get $6 i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $1 + local.get $8 local.get $0 - i32.const 6160 - call $~lib/typedarray/Int64Array#findLastIndex - i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer + local.get $6 + i32.const 3440 + i32.load + call_indirect (type $6) + local.set $1 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6192 - i32.store offset=8 + i32.const 1 + i32.sub + local.set $0 + br $for-loop|026 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.const 6 + i32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3472 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|028 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 local.get $0 - i32.const 6192 - call $~lib/typedarray/Int64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i64.load + local.set $10 global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 local.get $0 - i32.store offset=4 + local.get $1 + i32.const 3472 + i32.load + call_indirect (type $17) + local.set $3 local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set + i32.const 1 + i32.sub + local.set $0 + br $for-loop|028 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i64.const 0 + local.set $3 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3504 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|030 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load + local.set $10 global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $3 + local.get $10 local.get $0 - i32.store offset=4 + local.get $1 + i32.const 3504 + i32.load + call_indirect (type $17) + local.set $3 local.get $0 i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.sub + local.set $0 + br $for-loop|030 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $3 + i64.const 6 + i64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + f32.const 0 + local.set $4 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3536 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|032 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 local.get $0 i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.shl + i32.add + f32.load + local.set $11 global.get $~lib/memory/__stack_pointer - i32.const 6224 + local.get $1 i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $4 + local.get $11 + local.get $0 + local.get $1 + i32.const 3536 + i32.load + call_indirect (type $22) + local.set $4 local.get $0 - i32.const 6224 - call $~lib/typedarray/Uint64Array#findLastIndex i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer + i32.sub + local.set $0 + br $for-loop|032 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $4 + f32.const 6 + f32.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + f64.const 0 + local.set $5 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3568 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + i32.const 1 + i32.sub + local.set $0 + loop $for-loop|034 + local.get $0 + i32.const 0 + i32.ge_s + if + local.get $6 local.get $0 - i32.store offset=4 + i32.const 3 + i32.shl + i32.add + f64.load + local.set $12 global.get $~lib/memory/__stack_pointer - i32.const 6256 + local.get $1 i32.store offset=8 + i32.const 4 + global.set $~argumentsLength + local.get $5 + local.get $12 local.get $0 - i32.const 6256 - call $~lib/typedarray/Uint64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 + local.get $1 + i32.const 3568 + i32.load + call_indirect (type $23) + local.set $5 + local.get $0 + i32.const 1 i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + local.set $0 + br $for-loop|034 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $5 + f64.const 6 + f64.ne + br_if $folding-inner20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayMap<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayMap<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayFilter<~lib/typedarray/Float64Array,f64>" + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4304 + i32.store offset=8 + local.get $0 + i32.const 4304 + call $~lib/typedarray/Int8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4336 + i32.store offset=8 + local.get $0 + i32.const 4336 + call $~lib/typedarray/Int8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4368 + i32.store offset=8 + local.get $0 + i32.const 4368 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4400 + i32.store offset=8 + local.get $0 + i32.const 4400 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4432 + i32.store offset=8 + local.get $0 + i32.const 4432 + call $~lib/typedarray/Uint8Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4464 + i32.store offset=8 + local.get $0 + i32.const 4464 + call $~lib/typedarray/Uint8Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4496 + i32.store offset=8 + local.get $0 + i32.const 4496 + call $~lib/typedarray/Int16Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4528 + i32.store offset=8 + local.get $0 + i32.const 4528 + call $~lib/typedarray/Int16Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4560 + i32.store offset=8 + local.get $0 + i32.const 4560 + call $~lib/typedarray/Uint16Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4592 + i32.store offset=8 + local.get $0 + i32.const 4592 + call $~lib/typedarray/Uint16Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4624 + i32.store offset=8 + local.get $0 + i32.const 4624 + call $~lib/typedarray/Int32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4656 + i32.store offset=8 + local.get $0 + i32.const 4656 + call $~lib/typedarray/Int32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4688 + i32.store offset=8 + local.get $0 + i32.const 4688 + call $~lib/typedarray/Uint32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4720 + i32.store offset=8 + local.get $0 + i32.const 4720 + call $~lib/typedarray/Uint32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4752 + i32.store offset=8 + local.get $0 + i32.const 4752 + call $~lib/typedarray/Int64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4784 + i32.store offset=8 + local.get $0 + i32.const 4784 + call $~lib/typedarray/Int64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4816 + i32.store offset=8 + local.get $0 + i32.const 4816 + call $~lib/typedarray/Uint64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4848 + i32.store offset=8 + local.get $0 + i32.const 4848 + call $~lib/typedarray/Uint64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4880 + i32.store offset=8 + local.get $0 + i32.const 4880 + call $~lib/typedarray/Float32Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=8 + local.get $0 + i32.const 4912 + call $~lib/typedarray/Float32Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=8 + local.get $0 + i32.const 4944 + call $~lib/typedarray/Float64Array#some + i32.eqz + br_if $folding-inner6 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + local.get $0 + i32.const 4976 + call $~lib/typedarray/Float64Array#some + br_if $folding-inner7 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5008 + i32.store offset=8 + local.get $0 + i32.const 5008 + call $~lib/typedarray/Int8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5040 + i32.store offset=8 + local.get $0 + i32.const 5040 + call $~lib/typedarray/Int8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5072 + i32.store offset=8 + local.get $0 + i32.const 5072 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5104 + i32.store offset=8 + local.get $0 + i32.const 5104 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5136 + i32.store offset=8 + local.get $0 + i32.const 5136 + call $~lib/typedarray/Uint8Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5168 + i32.store offset=8 + local.get $0 + i32.const 5168 + call $~lib/typedarray/Uint8Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5200 + i32.store offset=8 + local.get $0 + i32.const 5200 + call $~lib/typedarray/Int16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5232 + i32.store offset=8 + local.get $0 + i32.const 5232 + call $~lib/typedarray/Int16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5264 + i32.store offset=8 + local.get $0 + i32.const 5264 + call $~lib/typedarray/Uint16Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5296 + i32.store offset=8 + local.get $0 + i32.const 5296 + call $~lib/typedarray/Uint16Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5328 + i32.store offset=8 + local.get $0 + i32.const 5328 + call $~lib/typedarray/Int32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=8 + local.get $0 + i32.const 5360 + call $~lib/typedarray/Int32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=8 + local.get $0 + i32.const 5392 + call $~lib/typedarray/Uint32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5424 + i32.store offset=8 + local.get $0 + i32.const 5424 + call $~lib/typedarray/Uint32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5456 + i32.store offset=8 + local.get $0 + i32.const 5456 + call $~lib/typedarray/Int64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=8 + local.get $0 + i32.const 5488 + call $~lib/typedarray/Int64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5520 + i32.store offset=8 + local.get $0 + i32.const 5520 + call $~lib/typedarray/Uint64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store offset=8 + local.get $0 + i32.const 5552 + call $~lib/typedarray/Uint64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5584 + i32.store offset=8 + local.get $0 + i32.const 5584 + call $~lib/typedarray/Float32Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5616 + i32.store offset=8 + local.get $0 + i32.const 5616 + call $~lib/typedarray/Float32Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=8 + local.get $0 + i32.const 5648 + call $~lib/typedarray/Float64Array#findIndex + i32.const 1 + i32.ne + br_if $folding-inner8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5680 + i32.store offset=8 + local.get $0 + i32.const 5680 + call $~lib/typedarray/Float64Array#findIndex + i32.const -1 + i32.ne + br_if $folding-inner9 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5712 + i32.store offset=8 + local.get $0 + i32.const 5712 + call $~lib/typedarray/Int8Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5744 + i32.store offset=8 + local.get $0 + i32.const 5744 + call $~lib/typedarray/Int8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5776 + i32.store offset=8 + local.get $0 + i32.const 5776 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5808 + i32.store offset=8 + local.get $0 + i32.const 5808 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5840 + i32.store offset=8 + local.get $0 + i32.const 5840 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5872 + i32.store offset=8 + local.get $0 + i32.const 5872 + call $~lib/typedarray/Uint8Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5904 + i32.store offset=8 + local.get $0 + i32.const 5904 + call $~lib/typedarray/Int16Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5936 + i32.store offset=8 + local.get $0 + i32.const 5936 + call $~lib/typedarray/Int16Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 5968 + i32.store offset=8 + local.get $0 + i32.const 5968 + call $~lib/typedarray/Uint16Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6000 + i32.store offset=8 + local.get $0 + i32.const 6000 + call $~lib/typedarray/Uint16Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6032 + i32.store offset=8 + local.get $0 + i32.const 6032 + call $~lib/typedarray/Int32Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6064 + i32.store offset=8 + local.get $0 + i32.const 6064 + call $~lib/typedarray/Int32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6096 + i32.store offset=8 + local.get $0 + i32.const 6096 + call $~lib/typedarray/Uint32Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6128 + i32.store offset=8 + local.get $0 + i32.const 6128 + call $~lib/typedarray/Uint32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6160 + i32.store offset=8 + local.get $0 + i32.const 6160 + call $~lib/typedarray/Int64Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6192 + i32.store offset=8 + local.get $0 + i32.const 6192 + call $~lib/typedarray/Int64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6224 + i32.store offset=8 + local.get $0 + i32.const 6224 + call $~lib/typedarray/Uint64Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6256 + i32.store offset=8 + local.get $0 + i32.const 6256 + call $~lib/typedarray/Uint64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6288 + i32.store offset=8 + local.get $0 + i32.const 6288 + call $~lib/typedarray/Float32Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6320 + i32.store offset=8 + local.get $0 + i32.const 6320 + call $~lib/typedarray/Float32Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6352 + i32.store offset=8 + local.get $0 + i32.const 6352 + call $~lib/typedarray/Float64Array#findLastIndex + i32.const 1 + i32.ne + br_if $folding-inner10 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6384 + i32.store offset=8 + local.get $0 + i32.const 6384 + call $~lib/typedarray/Float64Array#findLastIndex + i32.const -1 + i32.ne + br_if $folding-inner11 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6416 + i32.store offset=8 + local.get $0 + i32.const 6416 + call $~lib/typedarray/Int8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6448 + i32.store offset=8 + local.get $0 + i32.const 6448 + call $~lib/typedarray/Int8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6480 + i32.store offset=8 + local.get $0 + i32.const 6480 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6512 + i32.store offset=8 + local.get $0 + i32.const 6512 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6544 + i32.store offset=8 + local.get $0 + i32.const 6544 + call $~lib/typedarray/Uint8Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6576 + i32.store offset=8 + local.get $0 + i32.const 6576 + call $~lib/typedarray/Uint8Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6608 + i32.store offset=8 + local.get $0 + i32.const 6608 + call $~lib/typedarray/Int16Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6640 + i32.store offset=8 + local.get $0 + i32.const 6640 + call $~lib/typedarray/Int16Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6672 + i32.store offset=8 + local.get $0 + i32.const 6672 + call $~lib/typedarray/Uint16Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6704 + i32.store offset=8 + local.get $0 + i32.const 6704 + call $~lib/typedarray/Uint16Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6736 + i32.store offset=8 + local.get $0 + i32.const 6736 + call $~lib/typedarray/Int32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6768 + i32.store offset=8 + local.get $0 + i32.const 6768 + call $~lib/typedarray/Int32Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 6 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6800 + i32.store offset=8 + local.get $0 + i32.const 6800 + call $~lib/typedarray/Uint32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6832 + i32.store offset=8 + local.get $0 + i32.const 6832 + call $~lib/typedarray/Uint32Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6864 + i32.store offset=8 + local.get $0 + i32.const 6864 + call $~lib/typedarray/Int64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6896 + i32.store offset=8 + local.get $0 + i32.const 6896 + call $~lib/typedarray/Int64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 6 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6928 + i32.store offset=8 + local.get $0 + i32.const 6928 + call $~lib/typedarray/Uint64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6960 + i32.store offset=8 + local.get $0 + i32.const 6960 + call $~lib/typedarray/Uint64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 6 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 6992 + i32.store offset=8 + local.get $0 + i32.const 6992 + call $~lib/typedarray/Float32Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7024 + i32.store offset=8 + local.get $0 + i32.const 7024 + call $~lib/typedarray/Float32Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 6 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7056 + i32.store offset=8 + local.get $0 + i32.const 7056 + call $~lib/typedarray/Float64Array#every + i32.eqz + br_if $folding-inner12 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7088 + i32.store offset=8 + local.get $0 + i32.const 7088 + call $~lib/typedarray/Float64Array#every + br_if $folding-inner13 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend8_s + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7200 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.set $7 + loop $for-loop|036 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $0 + local.get $6 + i32.add + i32.load8_s global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7200 + i32.load + call_indirect (type $4) local.get $0 i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6288 - i32.store offset=8 + i32.add + local.set $0 + br $for-loop|036 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7232 + i32.store offset=8 + local.get $0 + i32.const 7232 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + local.get $0 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $0 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7264 + i32.store offset=8 + local.get $0 + i32.const 7264 + call $~lib/typedarray/Uint8Array#forEach + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.extend16_s + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7296 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|038 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 6288 - call $~lib/typedarray/Float32Array#findLastIndex i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6320 - i32.store offset=8 - local.get $0 - i32.const 6320 - call $~lib/typedarray/Float32Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load16_s global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7296 + i32.load + call_indirect (type $4) local.get $0 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6352 - i32.store offset=8 + i32.add + local.set $0 + br $for-loop|038 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i32.const 65535 + i32.and + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7328 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int16Array#get:length + local.set $7 + loop $for-loop|040 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 6352 - call $~lib/typedarray/Float64Array#findLastIndex i32.const 1 - i32.ne - br_if $folding-inner10 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6384 - i32.store offset=8 - local.get $0 - i32.const 6384 - call $~lib/typedarray/Float64Array#findLastIndex - i32.const -1 - i32.ne - br_if $folding-inner11 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i32.load16_u global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7328 + i32.load + call_indirect (type $4) + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $for-loop|040 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7360 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|042 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 0 i32.const 2 - call $~lib/typedarray/Int8Array#__set + i32.shl + i32.add + i32.load global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7360 + i32.load + call_indirect (type $4) local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.add + local.set $0 + br $for-loop|042 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7392 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|044 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.shl + i32.add + i32.load global.get $~lib/memory/__stack_pointer - i32.const 6416 + local.get $1 i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $0 - i32.const 6416 - call $~lib/typedarray/Int8Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 7392 + i32.load + call_indirect (type $4) local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6448 - i32.store offset=8 + i32.const 1 + i32.add + local.set $0 + br $for-loop|044 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7424 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|046 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 6448 - call $~lib/typedarray/Int8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + i64.load global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7424 + i32.load + call_indirect (type $28) local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + i32.const 1 + i32.add + local.set $0 + br $for-loop|046 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + i64.extend_i32_s + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7456 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|048 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 + local.get $0 + i32.const 3 + i32.shl + i32.add + i64.load global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7456 + i32.load + call_indirect (type $28) local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.add + local.set $0 + br $for-loop|048 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f32.convert_i32_s + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7488 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.set $7 + loop $for-loop|050 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 + i32.shl + i32.add + f32.load global.get $~lib/memory/__stack_pointer - i32.const 6480 + local.get $1 i32.store offset=8 + i32.const 3 + global.set $~argumentsLength local.get $0 - i32.const 6480 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.const 7488 + i32.load + call_indirect (type $33) local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6512 - i32.store offset=8 + i32.const 1 + i32.add + local.set $0 + br $for-loop|050 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + i32.const 0 + global.set $std/typedarray/forEachCallCount + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store + local.get $1 + global.set $std/typedarray/forEachSelf + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 0 + i32.const 7152 + i32.const 0 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 1 + i32.const 7152 + i32.const 1 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7152 + i32.store offset=8 + local.get $1 + i32.const 2 + i32.const 7152 + i32.const 2 + call $~lib/array/Array#__get + f64.convert_i32_s + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 7520 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.set $7 + loop $for-loop|052 + local.get $0 + local.get $7 + i32.lt_s + if + local.get $6 local.get $0 - i32.const 6512 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 3 + i32.shl i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store + f64.load global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 - global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer + global.set $~argumentsLength local.get $0 - i32.store offset=4 + local.get $1 + i32.const 7520 + i32.load + call_indirect (type $34) local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer + i32.add + local.set $0 + br $for-loop|052 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $std/typedarray/forEachCallCount + i32.const 3 + i32.ne + br_if $folding-inner21 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float64Array#constructor + local.tee $1 + i32.store offset=84 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f64.const nan:0x8000000000000 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f64.const nan:0x8000000000000 + i32.const 0 + call $~lib/typedarray/Float64Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 653 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int64Array#get:length + local.tee $6 + i32.eqz + local.get $6 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|0 local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6544 - i32.store offset=8 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 3 + i32.shl + i32.add + f64.load + local.tee $5 + local.get $5 + f64.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|0 + end + end + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 654 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 + i32.store offset=88 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + f32.const nan:0x400000 + i32.const 0 + call $~lib/typedarray/Float32Array#indexOf + i32.const -1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 659 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + local.get $1 + call $~lib/typedarray/Int32Array#get:length + local.tee $6 + i32.eqz + local.get $6 + i32.const 0 + i32.le_s + i32.or + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.load offset=4 + local.set $1 + loop $while-continue|05 local.get $0 - i32.const 6544 - call $~lib/typedarray/Uint8Array#every - i32.eqz - br_if $folding-inner12 + local.get $6 + i32.lt_s + if + i32.const 1 + local.get $1 + local.get $0 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.ne + br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" + drop + local.get $0 + i32.const 1 + i32.add + local.set $0 + br $while-continue|05 + end + end + i32.const 0 + end + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + i32.eqz + if + i32.const 0 + i32.const 1568 + i32.const 660 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint8Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + local.get $0 + call $~lib/typedarray/Uint8Array#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint16Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint16Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const 4 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i32.const 5 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Int64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Uint64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i64.const 1 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i64.const 4 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + i64.const 5 + call $~lib/typedarray/Uint64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Uint64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $1 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner22 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Uint64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 9616 + i32.store offset=8 + local.get $0 + i32.const 9616 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner23 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 1 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const 2 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const 3 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + f32.const 4 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + f32.const 5 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Float32Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $1 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Float32Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner25 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 20 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + f64.const 4 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 4 + f64.const 5 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=16 + local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $1 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner24 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 9584 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Float64Array#join + local.set $0 + global.get $~lib/memory/__stack_pointer + i32.const 8 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 10800 + i32.store offset=8 + local.get $0 + i32.const 10800 + call $~lib/string/String.__eq + i32.eqz + br_if $folding-inner25 + global.get $~lib/memory/__stack_pointer + i32.const 20 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=92 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + if + i32.const 0 + i32.const 1568 + i32.const 737 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/arraybuffer/ArrayBuffer#constructor + local.tee $0 + i32.store offset=92 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 2 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.const 2 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $0 + i32.store offset=96 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + call $~lib/typedarray/Int8Array#get:length + if + i32.const 0 + i32.const 1568 + i32.const 741 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 10928 + i32.store offset=4 + i32.const 10928 + call $~lib/array/Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 + i32.store offset=8 + loop $for-loop|062 + local.get $0 + local.get $2 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6576 - i32.store offset=8 - local.get $0 - i32.const 6576 - call $~lib/typedarray/Uint8Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 10928 + i32.store offset=12 + local.get $1 + local.get $2 + i32.const 10928 + local.get $2 + call $~lib/array/Array#__get + i32.const 255 + i32.and + call $~lib/typedarray/Uint8Array#__set + local.get $2 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + local.set $2 + br $for-loop|062 + end + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.load + local.tee $2 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $1 + call $~lib/arraybuffer/ArrayBufferView#get:byteOffset + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $2 + local.get $7 + local.get $8 + local.get $1 + i32.load offset=8 + i32.add + call $~lib/arraybuffer/ArrayBuffer#slice + local.tee $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + i32.const 1 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.const 0 + call $~lib/typedarray/Uint8Array.wrap@varargs + local.tee $6 + i32.store offset=20 + i32.const 0 + local.set $2 + loop $for-loop|1 + local.get $0 + local.get $2 + i32.gt_s + if global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store + local.get $1 + i32.store offset=4 + local.get $1 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.set $7 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $6 i32.store offset=4 + local.get $6 + local.get $2 + call $~lib/typedarray/Uint8Array#__get + local.get $7 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 730 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|1 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" + call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> + call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + global.get $~lib/memory/__stack_pointer + i32.const 10 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 + i32.store offset=100 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float32Array#constructor + local.tee $0 + i32.store offset=104 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f32.const 400 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f32.const nan:0x400000 + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f32.const inf + call $~lib/typedarray/Float32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int64Array#constructor + local.tee $6 + i32.store offset=108 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 0 + i64.const -10 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 1 + i64.const 100 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 2 + i64.const 10 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=4 + local.get $6 + i32.const 3 + i64.const 300 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/typedarray/Int32Array#constructor + local.tee $7 + i32.store offset=112 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 0 + i32.const 300 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + local.get $7 + i32.const 1 + i32.const -1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $8 + i32.const 1 + i32.add + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 1 + i32.add + local.set $9 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $0 + i32.const 0 + local.set $2 + loop $for-loop|0663 + local.get $2 + local.get $8 + i32.lt_s + if + local.get $2 + local.get $9 + i32.add local.get $0 - i32.const 0 + local.get $2 + i32.const 2 + i32.shl + i32.add + f32.load + local.tee $4 + local.get $4 + f32.sub + f32.const 0 + f32.eq + if (result i32) + local.get $4 + f32.const 255 + f32.min + f32.const 0 + f32.max + i32.trunc_sat_f32_u + else + i32.const 0 + end + i32.store8 + local.get $2 + i32.const 1 + i32.add + local.set $2 + br $for-loop|0663 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $6 + i32.store offset=20 + local.get $1 + local.get $6 + i32.const 4 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + call $~lib/typedarray/Int32Array#get:length + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $0 + i32.const 8 + i32.add + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + i32.const 8 + i32.add + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $7 + i32.store offset=8 + local.get $7 + i32.load offset=4 + local.set $7 + i32.const 0 + local.set $2 + loop $for-loop|07 + local.get $0 + local.get $2 + i32.gt_s + if + local.get $2 + local.get $6 + i32.add + i32.const 255 + local.get $7 + local.get $2 i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.shl + i32.add + i32.load + local.tee $8 + i32.sub + i32.const 31 + i32.shr_s + local.get $8 + i32.or + local.get $8 + i32.const 31 + i32.shr_s + i32.const -1 + i32.xor + i32.and + i32.store8 + local.get $2 i32.const 1 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer + i32.add + local.set $2 + br $for-loop|07 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15280 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Uint32Array#constructor + local.tee $0 + i32.store offset=116 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + i32.const 300 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + i32.const 100 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 3 + i32.const -1 + call $~lib/typedarray/Uint32Array#__set + global.get $~lib/memory/__stack_pointer + i32.const 4 + call $~lib/typedarray/Int16Array#constructor + local.tee $2 + i32.store offset=120 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 0 + i32.const -10 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 1 + i32.const 100 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 2 + i32.const 10 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=4 + local.get $2 + i32.const 3 + i32.const 300 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + call $~lib/typedarray/Int32Array#get:length + local.set $6 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + call $~lib/typedarray/Int8Array#get:length + local.get $6 + i32.lt_s + br_if $folding-inner17 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + local.get $1 + i32.load offset=4 + local.set $7 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + local.get $0 + i32.load offset=4 + local.set $8 + i32.const 0 + local.set $0 + loop $for-loop|0864 + local.get $0 + local.get $6 + i32.lt_s + if local.get $0 - i32.store offset=4 + local.get $7 + i32.add + i32.const 255 + local.get $8 local.get $0 i32.const 2 - i32.const 6 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6608 - i32.store offset=8 - local.get $0 - i32.const 6608 - call $~lib/typedarray/Int16Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6640 - i32.store offset=8 + i32.shl + i32.add + i32.load + local.tee $9 + local.get $9 + i32.const 255 + i32.gt_u + select + i32.store8 local.get $0 - i32.const 6640 - call $~lib/typedarray/Int16Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 1 i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + local.set $0 + br $for-loop|0864 + end + end + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=20 + local.get $1 + local.get $2 + i32.const 5 + call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 10 + i32.const 0 + i32.const 64 + i32.const 15312 + call $~lib/rt/__newArray + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $1 + local.get $0 + call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + block $folding-inner02 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 + call $~lib/typedarray/Int8Array#constructor + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 0 + local.get $1 i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 + i32.const 1 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint16Array#__set + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6672 - i32.store offset=8 - local.get $0 - i32.const 6672 - call $~lib/typedarray/Uint16Array#every - i32.eqz - br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6704 - i32.store offset=8 - local.get $0 - i32.const 6704 - call $~lib/typedarray/Uint16Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62213,7 +65661,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner02 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62221,251 +65669,191 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 + i32.const 15344 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 6 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6736 - i32.store offset=8 - local.get $0 - i32.const 6736 - call $~lib/typedarray/Int32Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6768 + i32.const 15344 i32.store offset=8 - local.get $0 - i32.const 6768 - call $~lib/typedarray/Int32Array#every - br_if $folding-inner13 + local.get $1 + i32.const 15344 + call $~lib/typedarray/Int8Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - i32.const 6 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 6800 - i32.store offset=8 - local.get $0 - i32.const 6800 - call $~lib/typedarray/Uint32Array#every - i32.eqz - br_if $folding-inner12 + i32.const 15376 + i32.store offset=12 + local.get $1 + i32.const 15376 + call $~lib/typedarray/Int8Array#sort + drop global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6832 - i32.store offset=8 - local.get $0 - i32.const 6832 - call $~lib/typedarray/Uint32Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer + call $~lib/typedarray/Int8Array#__get i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Int64Array#__set + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + call $~lib/typedarray/Int8Array#__get i32.const 2 - i64.const 6 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6864 - i32.store offset=8 - local.get $0 - i32.const 6864 - call $~lib/typedarray/Int64Array#every - i32.eqz - br_if $folding-inner12 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 6896 - i32.store offset=8 - local.get $0 - i32.const 6896 - call $~lib/typedarray/Int64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + block $folding-inner04 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner04 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8Array#constructor + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 + i32.const 2 i32.const 1 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 + i32.const 1 i32.const 2 - i64.const 6 - call $~lib/typedarray/Uint64Array#__set + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - i32.const 6928 - i32.store offset=8 - local.get $0 - i32.const 6928 - call $~lib/typedarray/Uint64Array#every - i32.eqz - br_if $folding-inner12 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6960 - i32.store offset=8 - local.get $0 - i32.const 6960 - call $~lib/typedarray/Uint64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62473,7 +65861,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner04 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -62481,347 +65869,191 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 + i32.const 15408 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 6 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 6992 - i32.store offset=8 - local.get $0 - i32.const 6992 - call $~lib/typedarray/Float32Array#every - i32.eqz - br_if $folding-inner12 - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7024 + i32.const 15408 i32.store offset=8 - local.get $0 - i32.const 7024 - call $~lib/typedarray/Float32Array#every - br_if $folding-inner13 + local.get $1 + i32.const 15408 + call $~lib/typedarray/Uint8Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 + local.get $1 i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - f64.const 4 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - f64.const 6 - call $~lib/typedarray/Float64Array#__set + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7056 - i32.store offset=8 - local.get $0 - i32.const 7056 - call $~lib/typedarray/Float64Array#every - i32.eqz - br_if $folding-inner12 + i32.const 15440 + i32.store offset=12 + local.get $1 + i32.const 15440 + call $~lib/typedarray/Uint8Array#sort + drop global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7088 - i32.store offset=8 - local.get $0 - i32.const 7088 - call $~lib/typedarray/Float64Array#every - br_if $folding-inner13 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int8Array,i8>$25" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + call $~lib/typedarray/Uint8Array#__get + i32.const 3 + i32.ne + if i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 889 i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8Array#__get + i32.const 2 + i32.ne + if i32.const 0 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend8_s - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8Array#__get + i32.const 1 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7200 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.set $7 - loop $for-loop|036 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $0 - local.get $6 - i32.add - i32.load8_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $0 - local.get $1 - i32.const 7200 - i32.load - call_indirect (type $4) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|036 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 891 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub + i32.const 16 + i32.add global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + block $folding-inner06 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner06 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 + call $~lib/typedarray/Uint8ClampedArray#constructor + local.tee $1 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 7152 + local.get $1 + i32.const 2 i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 7152 + local.get $1 + i32.const 1 i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7232 - i32.store offset=8 - local.get $0 - i32.const 7232 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount + local.get $1 + i32.const 0 i32.const 3 - i32.ne - br_if $folding-inner21 + call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -62829,1293 +66061,244 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner06 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer i32.const 0 i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 + i32.const 15472 i32.store - local.get $0 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $0 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8ClampedArray#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 7264 + i32.const 15472 i32.store offset=8 - local.get $0 - i32.const 7264 - call $~lib/typedarray/Uint8Array#forEach - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 + local.get $1 + i32.const 15472 + call $~lib/typedarray/Uint8Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - i32.const 0 - local.set $0 + local.get $1 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int16Array,i16>$26" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.extend16_s - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7296 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - loop $for-loop|038 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_s - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $0 - local.get $1 - i32.const 7296 - i32.load - call_indirect (type $4) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|038 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 885 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint16Array,u16>$27" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i32.const 65535 - i32.and - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7328 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int16Array#get:length - local.set $7 - loop $for-loop|040 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $0 - local.get $1 - i32.const 7328 - i32.load - call_indirect (type $4) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|040 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 886 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int32Array,i32>$28" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7360 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|042 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $0 - local.get $1 - i32.const 7360 - i32.load - call_indirect (type $4) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|042 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 887 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint32Array,u32>$29" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15504 + i32.store offset=12 + local.get $1 + i32.const 15504 + call $~lib/typedarray/Uint8Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 3 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7392 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|044 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.set $8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $8 - local.get $0 - local.get $1 - i32.const 7392 - i32.load - call_indirect (type $4) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|044 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 889 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Int64Array,i64>$30" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 2 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7424 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|046 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $0 - local.get $1 - i32.const 7424 - i32.load - call_indirect (type $28) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|046 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 890 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Uint64Array,u64>$31" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - i64.extend_i32_s - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint8ClampedArray#__get + i32.const 1 + i32.ne + if i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7456 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|048 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - i64.load - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $3 - local.get $0 - local.get $1 - i32.const 7456 - i32.load - call_indirect (type $28) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|048 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount + i32.const 1568 + i32.const 891 i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end - i32.const 0 - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub + i32.const 16 + i32.add global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Float32Array,f32>$32" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f32.convert_i32_s - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7488 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7488 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.set $7 - loop $for-loop|050 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.set $4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $4 - local.get $0 - local.get $1 - i32.const 7488 - i32.load - call_indirect (type $33) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|050 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + block $folding-inner08 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner08 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int16Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - local.set $0 + i32.const 3 + call $~lib/typedarray/Int16Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayForEach<~lib/typedarray/Float64Array,f64>$33" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - i32.const 0 - global.set $std/typedarray/forEachCallCount - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store - local.get $1 - global.set $std/typedarray/forEachSelf - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 0 - i32.const 7152 - i32.const 0 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 1 - i32.const 7152 - i32.const 1 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7152 - i32.store offset=8 - local.get $1 - i32.const 2 - i32.const 7152 - i32.const 2 - call $~lib/array/Array#__get - f64.convert_i32_s - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 7520 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 7520 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - i32.load offset=4 - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.set $7 - loop $for-loop|052 - local.get $0 - local.get $7 - i32.lt_s - if - local.get $6 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.set $5 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - i32.const 3 - global.set $~argumentsLength - local.get $5 - local.get $0 - local.get $1 - i32.const 7520 - i32.load - call_indirect (type $34) - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|052 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $std/typedarray/forEachCallCount - i32.const 3 - i32.ne - br_if $folding-inner21 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - end - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayReverse<~lib/typedarray/Float64Array,f64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int8Array,i8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8Array,u8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayIndexOfAndLastIndexOf<~lib/typedarray/Float64Array,f64>" global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float64Array#constructor - local.tee $1 - i32.store offset=84 + i32.const 16320 + i32.lt_s + br_if $folding-inner08 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15536 + i32.store offset=8 + local.get $1 + i32.const 15536 + call $~lib/typedarray/Int16Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.const 0 - f64.const nan:0x8000000000000 - call $~lib/typedarray/Float64Array#__set + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - f64.const nan:0x8000000000000 i32.const 0 - call $~lib/typedarray/Float64Array#indexOf - i32.const -1 + call $~lib/typedarray/Int16Array#__get + i32.const 1 i32.ne if i32.const 0 i32.const 1568 - i32.const 653 + i32.const 885 i32.const 3 call $~lib/builtins/abort unreachable @@ -64123,109 +66306,57 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int64Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|0 - local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 3 - i32.shl - i32.add - f64.load - local.tee $5 - local.get $5 - f64.ne - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float64Array,f64>|inlined.0" - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|0 - end - end + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne + if i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable end - local.set $0 global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 3 + i32.ne if i32.const 0 i32.const 1568 - i32.const 654 + i32.const 887 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store offset=88 - global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15568 + i32.store offset=12 local.get $1 - i32.const 0 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set + i32.const 15568 + call $~lib/typedarray/Int16Array#sort + drop global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 local.get $1 - f32.const nan:0x400000 i32.const 0 - call $~lib/typedarray/Float32Array#indexOf - i32.const -1 + call $~lib/typedarray/Int16Array#__get + i32.const 3 i32.ne if i32.const 0 i32.const 1568 - i32.const 659 + i32.const 889 i32.const 3 call $~lib/builtins/abort unreachable @@ -64233,1730 +66364,696 @@ global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 0 - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - block $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" (result i32) - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - local.get $1 - call $~lib/typedarray/Int32Array#get:length - local.tee $6 - i32.eqz - local.get $6 - i32.const 0 - i32.le_s - i32.or - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.load offset=4 - local.set $1 - loop $while-continue|05 - local.get $0 - local.get $6 - i32.lt_s - if - i32.const 1 - local.get $1 - local.get $0 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.ne - br_if $"~lib/typedarray/INCLUDES<~lib/typedarray/Float32Array,f32>|inlined.0" - drop - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $while-continue|05 - end - end - i32.const 0 - end - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - i32.eqz + local.get $1 + i32.const 1 + call $~lib/typedarray/Int16Array#__get + i32.const 2 + i32.ne if i32.const 0 i32.const 1568 - i32.const 660 + i32.const 890 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int8Array,i8>$34" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int8Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int16Array#__get + i32.const 1 + i32.ne + if i32.const 0 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 + i32.const 1568 + i32.const 891 i32.const 3 - i32.const 4 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int8Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub + i32.const 16 + i32.add global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + block $folding-inner010 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8Array#constructor - local.tee $0 - i32.store + br_if $folding-inner010 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $1 + call $~lib/typedarray/Uint16Array#constructor + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 + i32.const 2 i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint8Array#join - local.set $1 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint16Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - local.get $0 - call $~lib/typedarray/Uint8Array#toString - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int16Array,i16>$35" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint16Array,u16>$36" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint16Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint16Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint16Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int32Array,i32>$37" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint32Array,u32>$38" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const 4 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i32.const 5 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Int64Array,i64>$39" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Int64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Uint64Array,u64>$40" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Uint64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i64.const 4 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - i64.const 5 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Uint64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $1 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner22 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Uint64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 9616 - i32.store offset=8 - local.get $0 - i32.const 9616 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner23 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float32Array,f32>$41" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f32.const 4 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - f32.const 5 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float32Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end - global.get $~lib/memory/__stack_pointer - i32.const 20 + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArrayJoinAndToString<~lib/typedarray/Float64Array,f64>$42" - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.const 20 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 0 - f64.const 1 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 2 - f64.const 3 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - f64.const 4 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 4 - f64.const 5 - call $~lib/typedarray/Float64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=16 - local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $1 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner24 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner19 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 9584 - i32.store offset=4 - local.get $0 - call $~lib/typedarray/Float64Array#join - local.set $0 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10800 - i32.store offset=8 - local.get $0 - i32.const 10800 - call $~lib/string/String.__eq - i32.eqz - br_if $folding-inner25 - global.get $~lib/memory/__stack_pointer - i32.const 20 - i32.add - global.set $~lib/memory/__stack_pointer - end + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner010 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 + i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15600 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - i32.const 2 - global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 + i32.const 15600 + i32.store offset=8 + local.get $1 + i32.const 15600 + call $~lib/typedarray/Uint16Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 737 + i32.const 885 i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 2 - call $~lib/arraybuffer/ArrayBuffer#constructor - local.tee $0 - i32.store offset=92 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 + local.get $1 i32.const 2 - global.set $~argumentsLength + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15632 + i32.store offset=12 + local.get $1 + i32.const 15632 + call $~lib/typedarray/Uint16Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint16Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint16Array#__get i32.const 2 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $0 - i32.store offset=96 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - call $~lib/typedarray/Int8Array#get:length + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint16Array#__get + i32.const 1 + i32.ne if i32.const 0 i32.const 1568 - i32.const 741 + i32.const 891 i32.const 3 call $~lib/builtins/abort unreachable end - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int8Array,i8>" global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + block $folding-inner012 + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner012 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Int32Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + i32.const 2 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Int32Array#__set + global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + i32.const 12 i32.sub global.set $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner012 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer i32.const 0 - i32.const 24 - memory.fill + i32.store offset=8 global.get $~lib/memory/__stack_pointer - i32.const 10928 + i32.const 15664 i32.store global.get $~lib/memory/__stack_pointer - i32.const 10928 + local.get $1 i32.store offset=4 - i32.const 10928 - call $~lib/array/Array#get:length - local.set $0 global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 + i32.const 15664 i32.store offset=8 - loop $for-loop|062 - local.get $0 - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 10928 - i32.store offset=12 - local.get $1 - local.get $2 - i32.const 10928 - local.get $2 - call $~lib/array/Array#__get - i32.const 255 - i32.and - call $~lib/typedarray/Uint8Array#__set - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|062 - end - end + local.get $1 + i32.const 15664 + call $~lib/typedarray/Int32Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 - i32.load - local.tee $2 i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.set $6 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $7 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15696 i32.store offset=12 local.get $1 - call $~lib/arraybuffer/ArrayBufferView#get:byteOffset - local.set $8 + i32.const 15696 + call $~lib/typedarray/Int32Array#sort + drop global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=12 - local.get $6 - local.get $2 - local.get $7 - local.get $8 + i32.store offset=4 local.get $1 - i32.load offset=8 - i32.add - call $~lib/arraybuffer/ArrayBuffer#slice - local.tee $2 - i32.store offset=16 + i32.const 0 + call $~lib/typedarray/Int32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 + local.get $1 i32.const 1 - global.set $~argumentsLength + call $~lib/typedarray/Int32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $2 - i32.const 0 - call $~lib/typedarray/Uint8Array.wrap@varargs - local.tee $6 - i32.store offset=20 - i32.const 0 - local.set $2 - loop $for-loop|1 - local.get $0 - local.get $2 - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=4 - local.get $6 - local.get $2 - call $~lib/typedarray/Uint8Array#__get - local.get $7 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 730 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|1 - end + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 24 + i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint8ClampedArray,u8>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int16Array,i16>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint16Array,u16>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int32Array,i32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint32Array,u32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Int64Array,i64>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Uint64Array,u64>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Float32Array,f32>" - call $"std/typedarray/testArrayWrap<~lib/typedarray/Float64Array,f64>" - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint8ClampedArray> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint16Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Int64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Uint64Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float32Array> - call $std/typedarray/testTypedArraySet<~lib/typedarray/Float64Array> + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + block $folding-inner014 global.get $~lib/memory/__stack_pointer - i32.const 10 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store offset=100 + i32.const 16320 + i32.lt_s + br_if $folding-inner014 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $0 - i32.store offset=104 + call $~lib/typedarray/Uint32Array#constructor + local.tee $1 + i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 0 - f32.const 400 - call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 2 + i32.const 1 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - f32.const nan:0x400000 - call $~lib/typedarray/Float32Array#__set + i32.const 2 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 - i32.const 2 - f32.const inf - call $~lib/typedarray/Float32Array#__set + local.get $1 + i32.const 0 + i32.const 3 + call $~lib/typedarray/Uint32Array#__set global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int64Array#constructor - local.tee $6 - i32.store offset=108 global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 i32.const 0 - i64.const -10 - call $~lib/typedarray/Int64Array#__set + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $6 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner014 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $6 + global.get $~lib/memory/__stack_pointer + i32.const 15728 + i32.store offset=8 + local.get $1 + i32.const 15728 + call $~lib/typedarray/Uint32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint32Array#__get i32.const 1 - i64.const 100 - call $~lib/typedarray/Int64Array#__set + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint32Array#__get i32.const 2 - i64.const 10 - call $~lib/typedarray/Int64Array#__set + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $6 + local.get $1 i32.store offset=4 - local.get $6 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get i32.const 3 - i64.const 300 - call $~lib/typedarray/Int64Array#__set + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/typedarray/Int32Array#constructor - local.tee $7 - i32.store offset=112 + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 15760 + i32.store offset=12 + local.get $1 + i32.const 15760 + call $~lib/typedarray/Uint32Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 0 - i32.const 300 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint32Array#__get + i32.const 3 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 - local.get $7 + local.get $1 i32.const 1 - i32.const -1 - call $~lib/typedarray/Int32Array#__set + call $~lib/typedarray/Uint32Array#__get + i32.const 2 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint32Array#__get + i32.const 1 + i32.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub + i32.const 16 + i32.add global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + block $folding-inner016 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner016 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 3 + call $~lib/typedarray/Int64Array#constructor + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $8 - global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $8 - i32.const 1 - i32.add - i32.lt_s - br_if $folding-inner17 + i32.const 2 + i64.const 1 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 - i32.load offset=4 i32.const 1 - i32.add - local.set $9 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $0 - i32.const 0 - local.set $2 - loop $for-loop|0663 - local.get $2 - local.get $8 - i32.lt_s - if - local.get $2 - local.get $9 - i32.add - local.get $0 - local.get $2 - i32.const 2 - i32.shl - i32.add - f32.load - local.tee $4 - local.get $4 - f32.sub - f32.const 0 - f32.eq - if (result i32) - local.get $4 - f32.const 255 - f32.min - f32.const 0 - f32.max - i32.trunc_sat_f32_u - else - i32.const 0 - end - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|0663 - end - end - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + i64.const 2 + call $~lib/typedarray/Int64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $6 - i32.store offset=20 local.get $1 - local.get $6 - i32.const 4 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int64Array> + i32.const 0 + i64.const 3 + call $~lib/typedarray/Int64Array#__set + global.get $~lib/memory/__stack_pointer global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=20 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -65964,7 +67061,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner016 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -65972,169 +67069,191 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 15792 i32.store global.get $~lib/memory/__stack_pointer - local.get $7 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $7 + i32.const 15792 i32.store offset=8 - local.get $7 - call $~lib/typedarray/Int32Array#get:length - local.set $0 + local.get $1 + i32.const 15792 + call $~lib/typedarray/Int64Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer local.get $1 i32.store offset=8 - local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $0 - i32.const 8 - i32.add - i32.lt_s - br_if $folding-inner17 global.get $~lib/memory/__stack_pointer local.get $1 - i32.store offset=8 + i32.store offset=4 local.get $1 - i32.load offset=4 - i32.const 8 - i32.add - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $7 - i32.store offset=8 - local.get $7 - i32.load offset=4 - local.set $7 i32.const 0 - local.set $2 - loop $for-loop|07 - local.get $0 - local.get $2 - i32.gt_s - if - local.get $2 - local.get $6 - i32.add - i32.const 255 - local.get $7 - local.get $2 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $8 - i32.sub - i32.const 31 - i32.shr_s - local.get $8 - i32.or - local.get $8 - i32.const 31 - i32.shr_s - i32.const -1 - i32.xor - i32.and - i32.store8 - local.get $2 - i32.const 1 - i32.add - local.set $2 - br $for-loop|07 - end + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable end global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15280 - call $~lib/rt/__newArray - local.set $0 + local.get $1 + i32.const 2 + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Uint32Array#constructor - local.tee $0 - i32.store offset=116 + i32.const 15824 + i32.store offset=12 + local.get $1 + i32.const 15824 + call $~lib/typedarray/Int64Array#sort + drop global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - i32.const 300 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - i32.const 100 - call $~lib/typedarray/Uint32Array#__set + call $~lib/typedarray/Int64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - local.get $0 - i32.const 3 - i32.const -1 - call $~lib/typedarray/Uint32Array#__set + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + block $folding-inner018 global.get $~lib/memory/__stack_pointer - i32.const 4 - call $~lib/typedarray/Int16Array#constructor - local.tee $2 - i32.store offset=120 + i32.const 16320 + i32.lt_s + br_if $folding-inner018 global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 0 - i32.const -10 - call $~lib/typedarray/Int16Array#__set + i64.const 0 + i64.store global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=4 - local.get $2 - i32.const 1 - i32.const 100 - call $~lib/typedarray/Int16Array#__set + i64.const 0 + i64.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $2 + i32.const 3 + call $~lib/typedarray/Uint64Array#constructor + local.tee $1 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $2 + local.get $1 i32.const 2 - i32.const 10 - call $~lib/typedarray/Int16Array#__set + i64.const 1 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $2 + local.get $1 i32.store offset=4 - local.get $2 - i32.const 3 - i32.const 300 - call $~lib/typedarray/Int16Array#__set + local.get $1 + i32.const 1 + i64.const 2 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 + local.get $1 + i32.const 0 + i64.const 3 + call $~lib/typedarray/Uint64Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength global.get $~lib/memory/__stack_pointer i32.const 12 i32.sub @@ -66142,7 +67261,7 @@ global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner018 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -66150,2124 +67269,153 @@ i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 15856 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - call $~lib/typedarray/Int32Array#get:length - local.set $6 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 local.get $1 - call $~lib/typedarray/Int8Array#get:length - local.get $6 - i32.lt_s - br_if $folding-inner17 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - local.get $1 + i32.const 15856 i32.store offset=8 local.get $1 - i32.load offset=4 - local.set $7 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - local.get $0 - i32.load offset=4 - local.set $8 - i32.const 0 - local.set $0 - loop $for-loop|0864 - local.get $0 - local.get $6 - i32.lt_s - if - local.get $0 - local.get $7 - i32.add - i32.const 255 - local.get $8 - local.get $0 - i32.const 2 - i32.shl - i32.add - i32.load - local.tee $9 - local.get $9 - i32.const 255 - i32.gt_u - select - i32.store8 - local.get $0 - i32.const 1 - i32.add - local.set $0 - br $for-loop|0864 - end - end + i32.const 15856 + call $~lib/typedarray/Uint64Array#sort + local.set $1 global.get $~lib/memory/__stack_pointer i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=20 local.get $1 - local.get $2 - i32.const 5 - call $~lib/typedarray/Uint8ClampedArray#set<~lib/typedarray/Int16Array> + i32.store offset=8 global.get $~lib/memory/__stack_pointer local.get $1 i32.store offset=4 - i32.const 10 - i32.const 0 - i32.const 64 - i32.const 15312 - call $~lib/rt/__newArray - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 local.get $1 - local.get $0 - call $std/typedarray/valuesEqual<~lib/typedarray/Uint8ClampedArray> - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" - block $folding-inner02 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner02 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int8Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner02 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15344 - i32.store offset=8 - local.get $1 - i32.const 15344 - call $~lib/typedarray/Int8Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15376 - i32.store offset=12 - local.get $1 - i32.const 15376 - call $~lib/typedarray/Int8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int8Array,i8>" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" - block $folding-inner04 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner04 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner04 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15408 - i32.store offset=8 - local.get $1 - i32.const 15408 - call $~lib/typedarray/Uint8Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15440 - i32.store offset=12 - local.get $1 - i32.const 15440 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8Array,u8>$1" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" - block $folding-inner06 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner06 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint8ClampedArray#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner06 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15472 - i32.store offset=8 - local.get $1 - i32.const 15472 - call $~lib/typedarray/Uint8Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15504 - i32.store offset=12 - local.get $1 - i32.const 15504 - call $~lib/typedarray/Uint8Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint8ClampedArray#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint8ClampedArray,u8>$2" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" - block $folding-inner08 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner08 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int16Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner08 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15536 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15536 - i32.store offset=8 - local.get $1 - i32.const 15536 - call $~lib/typedarray/Int16Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15568 - i32.store offset=12 - local.get $1 - i32.const 15568 - call $~lib/typedarray/Int16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int16Array,i16>$3" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" - block $folding-inner010 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner010 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint16Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint16Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner010 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15600 - i32.store offset=8 - local.get $1 - i32.const 15600 - call $~lib/typedarray/Uint16Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15632 - i32.store offset=12 - local.get $1 - i32.const 15632 - call $~lib/typedarray/Uint16Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint16Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint16Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint16Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint16Array,u16>$4" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" - block $folding-inner012 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner012 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Int32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner012 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15664 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15664 - i32.store offset=8 - local.get $1 - i32.const 15664 - call $~lib/typedarray/Int32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15696 - i32.store offset=12 - local.get $1 - i32.const 15696 - call $~lib/typedarray/Int32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int32Array,i32>$5" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + local.get $1 + i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" - block $folding-inner014 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner014 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i32.const 1 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i32.const 3 - call $~lib/typedarray/Uint32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner014 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15728 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15728 - i32.store offset=8 - local.get $1 - i32.const 15728 - call $~lib/typedarray/Uint32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15760 - i32.store offset=12 - local.get $1 - i32.const 15760 - call $~lib/typedarray/Uint32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint32Array#__get - i32.const 3 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint32Array#__get - i32.const 2 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint32Array#__get - i32.const 1 - i32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint32Array,u32>$6" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 - call $~lib/builtins/abort - unreachable - end + i32.const 15888 + i32.store offset=12 + local.get $1 + i32.const 15888 + call $~lib/typedarray/Uint64Array#sort + drop global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" - block $folding-inner016 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner016 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Int64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Int64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner016 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15792 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15792 - i32.store offset=8 - local.get $1 - i32.const 15792 - call $~lib/typedarray/Int64Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15824 - i32.store offset=12 - local.get $1 - i32.const 15824 - call $~lib/typedarray/Int64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Int64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Int64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Int64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Int64Array,i64>$7" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 0 + call $~lib/typedarray/Uint64Array#__get + i64.const 3 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" - block $folding-inner018 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner018 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Uint64Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - i64.const 1 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - i64.const 2 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - i64.const 3 - call $~lib/typedarray/Uint64Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner018 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15856 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15856 - i32.store offset=8 - local.get $1 - i32.const 15856 - call $~lib/typedarray/Uint64Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15888 - i32.store offset=12 - local.get $1 - i32.const 15888 - call $~lib/typedarray/Uint64Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Uint64Array#__get - i64.const 3 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Uint64Array#__get - i64.const 2 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Uint64Array#__get - i64.const 1 - i64.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 1 + call $~lib/typedarray/Uint64Array#__get + i64.const 2 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.sub - global.set $~lib/memory/__stack_pointer - block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" - block $folding-inner020 - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner020 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 3 - call $~lib/typedarray/Float32Array#constructor - local.tee $1 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - f32.const 1 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - f32.const 2 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - f32.const 3 - call $~lib/typedarray/Float32Array#__set - global.get $~lib/memory/__stack_pointer - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - i32.const 0 - global.set $~argumentsLength - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 16320 - i32.lt_s - br_if $folding-inner020 - global.get $~lib/memory/__stack_pointer - i64.const 0 - i64.store - global.get $~lib/memory/__stack_pointer - i32.const 0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15920 - i32.store offset=8 - local.get $1 - i32.const 15920 - call $~lib/typedarray/Float32Array#sort - local.set $1 - global.get $~lib/memory/__stack_pointer - i32.const 12 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $0 - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 885 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 886 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 887 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 15952 - i32.store offset=12 - local.get $1 - i32.const 15952 - call $~lib/typedarray/Float32Array#sort - drop - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 0 - call $~lib/typedarray/Float32Array#__get - f32.const 3 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 889 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 1 - call $~lib/typedarray/Float32Array#__get - f32.const 2 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 890 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=4 - local.get $1 - i32.const 2 - call $~lib/typedarray/Float32Array#__get - f32.const 1 - f32.ne - if - i32.const 0 - i32.const 1568 - i32.const 891 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 16 - i32.add - global.set $~lib/memory/__stack_pointer - br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" - end - i32.const 49120 - i32.const 49168 - i32.const 1 - i32.const 1 + local.get $1 + i32.store offset=4 + local.get $1 + i32.const 2 + call $~lib/typedarray/Uint64Array#__get + i64.const 1 + i64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 call $~lib/builtins/abort unreachable end global.get $~lib/memory/__stack_pointer i32.const 16 - i32.sub + i32.add global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Uint64Array,u64>$8" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + block $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + block $folding-inner020 global.get $~lib/memory/__stack_pointer i32.const 16320 i32.lt_s - br_if $folding-inner19 + br_if $folding-inner020 global.get $~lib/memory/__stack_pointer i64.const 0 i64.store @@ -68276,48 +67424,77 @@ i64.store offset=8 global.get $~lib/memory/__stack_pointer i32.const 3 - call $~lib/typedarray/Float64Array#constructor - local.tee $0 + call $~lib/typedarray/Float32Array#constructor + local.tee $1 i32.store global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - f64.const 1 - call $~lib/typedarray/Float64Array#__set + f32.const 1 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - f64.const 2 - call $~lib/typedarray/Float64Array#__set + f32.const 2 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - f64.const 3 - call $~lib/typedarray/Float64Array#__set + f32.const 3 + call $~lib/typedarray/Float32Array#__set global.get $~lib/memory/__stack_pointer - local.get $0 + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 i32.const 0 global.set $~argumentsLength global.get $~lib/memory/__stack_pointer - local.get $0 - call $~lib/typedarray/Float64Array#sort@varargs - local.tee $0 + i32.const 12 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner020 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i32.const 0 i32.store offset=8 global.get $~lib/memory/__stack_pointer - local.get $0 + i32.const 15920 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $1 i32.store offset=4 - local.get $0 + global.get $~lib/memory/__stack_pointer + i32.const 15920 + i32.store offset=8 + local.get $1 + i32.const 15920 + call $~lib/typedarray/Float32Array#sort + local.set $1 + global.get $~lib/memory/__stack_pointer + i32.const 12 + i32.add + global.set $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=4 + local.get $1 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne if i32.const 0 i32.const 1568 @@ -68327,13 +67504,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 2 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne if i32.const 0 i32.const 1568 @@ -68343,13 +67520,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne if i32.const 0 i32.const 1568 @@ -68359,23 +67536,23 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 global.get $~lib/memory/__stack_pointer - i32.const 15984 + i32.const 15952 i32.store offset=12 - local.get $0 - i32.const 15984 - call $~lib/typedarray/Float64Array#sort + local.get $1 + i32.const 15952 + call $~lib/typedarray/Float32Array#sort drop global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 0 - call $~lib/typedarray/Float64Array#__get - f64.const 3 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 3 + f32.ne if i32.const 0 i32.const 1568 @@ -68385,13 +67562,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 1 - call $~lib/typedarray/Float64Array#__get - f64.const 2 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 2 + f32.ne if i32.const 0 i32.const 1568 @@ -68401,13 +67578,13 @@ unreachable end global.get $~lib/memory/__stack_pointer - local.get $0 + local.get $1 i32.store offset=4 - local.get $0 + local.get $1 i32.const 2 - call $~lib/typedarray/Float64Array#__get - f64.const 1 - f64.ne + call $~lib/typedarray/Float32Array#__get + f32.const 1 + f32.ne if i32.const 0 i32.const 1568 @@ -68420,126 +67597,291 @@ i32.const 16 i32.add global.set $~lib/memory/__stack_pointer - i32.const 49088 - global.set $~lib/memory/__stack_pointer + br $"__inlined_func$std/typedarray/testArraySort<~lib/typedarray/Float32Array,f32>$9" + end + i32.const 49120 + i32.const 49168 + i32.const 1 + i32.const 1 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 16320 + i32.lt_s + br_if $folding-inner19 + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store + global.get $~lib/memory/__stack_pointer + i64.const 0 + i64.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 3 + call $~lib/typedarray/Float64Array#constructor + local.tee $0 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + f64.const 1 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + f64.const 2 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + f64.const 3 + call $~lib/typedarray/Float64Array#__set + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + i32.const 0 + global.set $~argumentsLength + global.get $~lib/memory/__stack_pointer + local.get $0 + call $~lib/typedarray/Float64Array#sort@varargs + local.tee $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 885 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 886 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 887 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 15984 + i32.store offset=12 + local.get $0 + i32.const 15984 + call $~lib/typedarray/Float64Array#sort + drop + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 0 + call $~lib/typedarray/Float64Array#__get + f64.const 3 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 889 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 1 + call $~lib/typedarray/Float64Array#__get + f64.const 2 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 890 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=4 + local.get $0 + i32.const 2 + call $~lib/typedarray/Float64Array#__get + f64.const 1 + f64.ne + if + i32.const 0 + i32.const 1568 + i32.const 891 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 16 + i32.add + global.set $~lib/memory/__stack_pointer + i32.const 49088 + global.set $~lib/memory/__stack_pointer + global.get $~lib/rt/itcms/state + i32.const 0 + i32.gt_s + if + loop $while-continue|010 global.get $~lib/rt/itcms/state - i32.const 0 - i32.gt_s if - loop $while-continue|010 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|010 - end - end + call $~lib/rt/itcms/step + drop + br $while-continue|010 end + end + end + call $~lib/rt/itcms/step + drop + loop $while-continue|1 + global.get $~lib/rt/itcms/state + if call $~lib/rt/itcms/step drop - loop $while-continue|1 - global.get $~lib/rt/itcms/state - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end - end - global.get $~lib/rt/itcms/total - i64.extend_i32_u - i64.const 200 - i64.mul - i64.const 100 - i64.div_u - i32.wrap_i64 - i32.const 1024 - i32.add - global.set $~lib/rt/itcms/threshold - global.get $~lib/memory/__stack_pointer - i32.const 124 - i32.add - global.set $~lib/memory/__stack_pointer - return + br $while-continue|1 end - unreachable end - i32.const 0 - i32.const 1568 - i32.const 344 - i32.const 3 - call $~lib/builtins/abort - unreachable + global.get $~lib/rt/itcms/total + i64.extend_i32_u + i64.const 200 + i64.mul + i64.const 100 + i64.div_u + i32.wrap_i64 + i32.const 1024 + i32.add + global.set $~lib/rt/itcms/threshold + global.get $~lib/memory/__stack_pointer + i32.const 124 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 0 i32.const 1568 - i32.const 345 + i32.const 344 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 346 + i32.const 345 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 438 + i32.const 346 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 440 + i32.const 438 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 461 + i32.const 440 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 463 + i32.const 461 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 484 + i32.const 463 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 486 + i32.const 484 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 507 + i32.const 486 i32.const 3 call $~lib/builtins/abort unreachable end i32.const 0 i32.const 1568 - i32.const 509 + i32.const 507 i32.const 3 call $~lib/builtins/abort unreachable end + i32.const 0 + i32.const 1568 + i32.const 509 + i32.const 3 + call $~lib/builtins/abort unreachable end i32.const 1360 @@ -68627,7 +67969,6 @@ i32.const 0 i32.store global.get $~lib/memory/__stack_pointer - local.set $4 local.get $0 local.get $1 i32.shl @@ -68642,7 +67983,6 @@ local.get $5 memory.copy end - local.get $4 local.get $1 i32.store i32.const 16 diff --git a/tests/compiler/std/uri.debug.wat b/tests/compiler/std/uri.debug.wat index 0283f96980..ef094cef9d 100644 --- a/tests/compiler/std/uri.debug.wat +++ b/tests/compiler/std/uri.debug.wat @@ -168,37 +168,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 224 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 224 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -424,22 +422,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -653,27 +649,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -691,28 +685,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1037,27 +1029,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1066,37 +1056,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1186,7 +1174,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1255,15 +1242,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1332,15 +1317,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1348,21 +1331,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1370,27 +1351,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1559,39 +1538,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1610,31 +1587,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2842,40 +2817,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -3017,31 +2990,29 @@ if local.get $i local.set $org - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $i + local.get $len + i32.lt_u + if (result i32) + local.get $src local.get $i - local.get $len - i32.lt_u - if (result i32) - local.get $src - local.get $i - i32.const 1 - i32.shl - i32.add - i32.load16_u - local.tee $ch - i32.const 37 - i32.ne - else - i32.const 0 - end - if - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|1 - end + i32.const 1 + i32.shl + i32.add + i32.load16_u + local.tee $ch + i32.const 37 + i32.ne + else + i32.const 0 + end + if + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|1 end end local.get $i @@ -3406,16 +3377,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3461,7 +3430,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/std/uri.release.wat b/tests/compiler/std/uri.release.wat index e5e37589ca..19b44988e5 100644 --- a/tests/compiler/std/uri.release.wat +++ b/tests/compiler/std/uri.release.wat @@ -1148,7 +1148,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1181,7 +1180,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2674,12 +2672,10 @@ i32.shr_u i32.const 1068 call $~lib/util/uri/encode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/string/String.__eq (param $0 i32) (param $1 i32) (result i32) (local $2 i32) @@ -2874,12 +2870,10 @@ i32.shr_u i32.const 3388 call $~lib/util/uri/encode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/uri/decodeURIComponent (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2912,12 +2906,10 @@ i32.shr_u i32.const 1 call $~lib/util/uri/decode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $~lib/uri/decodeURI (param $0 i32) (result i32) global.get $~lib/memory/__stack_pointer @@ -2950,12 +2942,10 @@ i32.shr_u i32.const 0 call $~lib/util/uri/decode - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $start:std/uri (local $0 i32) diff --git a/tests/compiler/super-inline.debug.wat b/tests/compiler/super-inline.debug.wat index ca212608dc..347d6527fd 100644 --- a/tests/compiler/super-inline.debug.wat +++ b/tests/compiler/super-inline.debug.wat @@ -93,37 +93,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 96 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 96 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -349,22 +347,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -578,27 +574,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -616,28 +610,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -962,27 +954,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -991,37 +981,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1111,7 +1099,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1180,15 +1167,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1257,15 +1242,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1273,21 +1256,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1295,27 +1276,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1484,39 +1463,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1535,31 +1512,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2332,7 +2307,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/super-inline.release.wat b/tests/compiler/super-inline.release.wat index bafd07b72f..703cbc6f3c 100644 --- a/tests/compiler/super-inline.release.wat +++ b/tests/compiler/super-inline.release.wat @@ -1039,7 +1039,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1072,7 +1071,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1552,7 +1550,6 @@ i32.store end global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1580,7 +1577,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/switch.debug.wat b/tests/compiler/switch.debug.wat index d8f90bf52a..6510f0aca7 100644 --- a/tests/compiler/switch.debug.wat +++ b/tests/compiler/switch.debug.wat @@ -126,40 +126,36 @@ ) (func $switch/doSwitchFallThroughCase (param $n i32) (result i32) (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case1|0 - br $case0|0 - end - i32.const 2 - return + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 + i32.const 1 + i32.eq + br_if $case1|0 + br $case0|0 end + i32.const 2 + return end i32.const 1 return ) (func $switch/doSwitchFallThroughDefault (param $n i32) (result i32) (local $1 i32) - block $break|0 - block $case1|0 - block $case0|0 - local.get $n - local.set $1 - local.get $1 - i32.const 1 - i32.eq - br_if $case0|0 - br $case1|0 - end + block $case1|0 + block $case0|0 + local.get $n + local.set $1 + local.get $1 i32.const 1 - return + i32.eq + br_if $case0|0 + br $case1|0 end + i32.const 1 + return end i32.const 2 return diff --git a/tests/compiler/tablebase.debug.wat b/tests/compiler/tablebase.debug.wat index 1a39692d48..be867f2190 100644 --- a/tests/compiler/tablebase.debug.wat +++ b/tests/compiler/tablebase.debug.wat @@ -16,7 +16,6 @@ (export "memory" (memory $0)) (start $~start) (func $tablebase/foo - nop ) (func $~lib/function/Function<%28%29=>void>#get:index (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/templateliteral.debug.wat b/tests/compiler/templateliteral.debug.wat index 2bb91a52cd..629dbcd62d 100644 --- a/tests/compiler/templateliteral.debug.wat +++ b/tests/compiler/templateliteral.debug.wat @@ -187,40 +187,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 @@ -276,37 +274,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 256 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 256 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -532,22 +528,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -761,27 +755,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -799,28 +791,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1145,27 +1135,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1174,37 +1162,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1294,7 +1280,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1363,15 +1348,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1440,15 +1423,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1456,21 +1437,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1478,27 +1457,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1667,39 +1644,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1718,31 +1693,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2610,61 +2583,59 @@ (local $digits i32) (local $digits|12 i32) (local $digit i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + i32.const 10000 + i32.ge_u + if local.get $num i32.const 10000 - i32.ge_u - if - local.get $num - i32.const 10000 - i32.div_u - local.set $t - local.get $num - i32.const 10000 - i32.rem_u - local.set $r - local.get $t - local.set $num - local.get $r - i32.const 100 - i32.div_u - local.set $d1 - local.get $r - i32.const 100 - i32.rem_u - local.set $d2 - i32.const 1020 - local.get $d1 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits1 - i32.const 1020 - local.get $d2 - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.set $digits2 - local.get $offset - i32.const 4 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - local.get $digits1 - local.get $digits2 - i64.const 32 - i64.shl - i64.or - i64.store - br $while-continue|0 - end + i32.div_u + local.set $t + local.get $num + i32.const 10000 + i32.rem_u + local.set $r + local.get $t + local.set $num + local.get $r + i32.const 100 + i32.div_u + local.set $d1 + local.get $r + i32.const 100 + i32.rem_u + local.set $d2 + i32.const 1020 + local.get $d1 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits1 + i32.const 1020 + local.get $d2 + i32.const 2 + i32.shl + i32.add + i64.load32_u + local.set $digits2 + local.get $offset + i32.const 4 + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + local.get $digits1 + local.get $digits2 + i64.const 32 + i64.shl + i64.or + i64.store + br $while-continue|0 end end local.get $num @@ -2741,37 +2712,35 @@ end ) (func $~lib/util/number/utoa_hex_lut (param $buffer i32) (param $num i64) (param $offset i32) - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $offset + i32.const 2 + i32.ge_u + if local.get $offset i32.const 2 - i32.ge_u - if - local.get $offset - i32.const 2 - i32.sub - local.set $offset - local.get $buffer - local.get $offset - i32.const 1 - i32.shl - i32.add - i32.const 1440 - local.get $num - i32.wrap_i64 - i32.const 255 - i32.and - i32.const 2 - i32.shl - i32.add - i32.load - i32.store - local.get $num - i64.const 8 - i64.shr_u - local.set $num - br $while-continue|0 - end + i32.sub + local.set $offset + local.get $buffer + local.get $offset + i32.const 1 + i32.shl + i32.add + i32.const 1440 + local.get $num + i32.wrap_i64 + i32.const 255 + i32.and + i32.const 2 + i32.shl + i32.add + i32.load + i32.store + local.get $num + i64.const 8 + i64.shr_u + local.set $num + br $while-continue|0 end end local.get $offset @@ -2825,44 +2794,40 @@ local.set $b i32.const 1 local.set $e - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $num + local.get $b + i64.ge_u + if local.get $num local.get $b - i64.ge_u - if - local.get $num - local.get $b - i64.div_u - local.set $num - local.get $b - local.get $b - i64.mul - local.set $b - local.get $e - i32.const 1 - i32.shl - local.set $e - br $while-continue|0 - end + i64.div_u + local.set $num + local.get $b + local.get $b + i64.mul + local.set $b + local.get $e + i32.const 1 + i32.shl + local.set $e + br $while-continue|0 end end - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $num + i64.const 1 + i64.ge_u + if local.get $num - i64.const 1 - i64.ge_u - if - local.get $num - local.get $b64 - i64.div_u - local.set $num - local.get $e - i32.const 1 - i32.add - local.set $e - br $while-continue|1 - end + local.get $b64 + i64.div_u + local.set $num + local.get $e + i32.const 1 + i32.add + local.set $e + br $while-continue|1 end end local.get $e @@ -3030,454 +2995,441 @@ local.set $kappa local.get $sign local.set $len - block $while-break|0 - loop $while-continue|0 - local.get $kappa - i32.const 0 - i32.gt_s - if - block $break|1 - block $case10|1 - block $case9|1 - block $case8|1 - block $case7|1 - block $case6|1 - block $case5|1 - block $case4|1 - block $case3|1 - block $case2|1 - block $case1|1 - block $case0|1 - local.get $kappa - local.set $16 - local.get $16 - i32.const 10 - i32.eq - br_if $case0|1 - local.get $16 - i32.const 9 - i32.eq - br_if $case1|1 - local.get $16 - i32.const 8 - i32.eq - br_if $case2|1 - local.get $16 - i32.const 7 - i32.eq - br_if $case3|1 - local.get $16 - i32.const 6 - i32.eq - br_if $case4|1 - local.get $16 - i32.const 5 - i32.eq - br_if $case5|1 - local.get $16 - i32.const 4 - i32.eq - br_if $case6|1 - local.get $16 - i32.const 3 - i32.eq - br_if $case7|1 - local.get $16 - i32.const 2 - i32.eq - br_if $case8|1 - local.get $16 - i32.const 1 - i32.eq - br_if $case9|1 - br $case10|1 - end - local.get $p1 - i32.const 1000000000 - i32.div_u - local.set $d - local.get $p1 - i32.const 1000000000 - i32.rem_u - local.set $p1 - br $break|1 + loop $while-continue|0 + local.get $kappa + i32.const 0 + i32.gt_s + if + block $break|1 + block $case10|1 + block $case9|1 + block $case8|1 + block $case7|1 + block $case6|1 + block $case5|1 + block $case4|1 + block $case3|1 + block $case2|1 + block $case1|1 + block $case0|1 + local.get $kappa + local.set $16 + local.get $16 + i32.const 10 + i32.eq + br_if $case0|1 + local.get $16 + i32.const 9 + i32.eq + br_if $case1|1 + local.get $16 + i32.const 8 + i32.eq + br_if $case2|1 + local.get $16 + i32.const 7 + i32.eq + br_if $case3|1 + local.get $16 + i32.const 6 + i32.eq + br_if $case4|1 + local.get $16 + i32.const 5 + i32.eq + br_if $case5|1 + local.get $16 + i32.const 4 + i32.eq + br_if $case6|1 + local.get $16 + i32.const 3 + i32.eq + br_if $case7|1 + local.get $16 + i32.const 2 + i32.eq + br_if $case8|1 + local.get $16 + i32.const 1 + i32.eq + br_if $case9|1 + br $case10|1 end local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.div_u local.set $d local.get $p1 - i32.const 100000000 + i32.const 1000000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.div_u local.set $d local.get $p1 - i32.const 10000000 + i32.const 100000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.div_u local.set $d local.get $p1 - i32.const 1000000 + i32.const 10000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100000 + i32.const 1000000 i32.div_u local.set $d local.get $p1 - i32.const 100000 + i32.const 1000000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10000 + i32.const 100000 i32.div_u local.set $d local.get $p1 - i32.const 10000 + i32.const 100000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 1000 + i32.const 10000 i32.div_u local.set $d local.get $p1 - i32.const 1000 + i32.const 10000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 100 + i32.const 1000 i32.div_u local.set $d local.get $p1 - i32.const 100 + i32.const 1000 i32.rem_u local.set $p1 br $break|1 end local.get $p1 - i32.const 10 + i32.const 100 i32.div_u local.set $d local.get $p1 - i32.const 10 + i32.const 100 i32.rem_u local.set $p1 br $break|1 end local.get $p1 + i32.const 10 + i32.div_u local.set $d - i32.const 0 + local.get $p1 + i32.const 10 + i32.rem_u local.set $p1 br $break|1 end - i32.const 0 + local.get $p1 local.set $d + i32.const 0 + local.set $p1 br $break|1 end + i32.const 0 + local.set $d + br $break|1 + end + local.get $d + local.get $len + i32.or + if + local.get $buffer + local.get $len + local.tee $17 + i32.const 1 + i32.add + local.set $len + local.get $17 + i32.const 1 + i32.shl + i32.add + i32.const 48 local.get $d + i32.const 65535 + i32.and + i32.add + i32.store16 + end + local.get $kappa + i32.const 1 + i32.sub + local.set $kappa + local.get $p1 + i64.extend_i32_u + local.get $one_exp + i64.extend_i32_s + i64.shl + local.get $p2 + i64.add + local.set $tmp + local.get $tmp + local.get $delta + i64.le_u + if + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $buffer + local.set $buffer|19 local.get $len - i32.or - if - local.get $buffer - local.get $len - local.tee $17 - i32.const 1 - i32.add - local.set $len - local.get $17 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|20 + local.get $delta + local.set $delta|21 + local.get $tmp + local.set $rest + i32.const 3824 local.get $kappa - i32.const 1 - i32.sub - local.set $kappa - local.get $p1 - i64.extend_i32_u + i32.const 2 + i32.shl + i32.add + i64.load32_u local.get $one_exp i64.extend_i32_s i64.shl - local.get $p2 - i64.add - local.set $tmp - local.get $tmp - local.get $delta - i64.le_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - block $~lib/util/number/grisuRound|inlined.0 - local.get $buffer - local.set $buffer|19 - local.get $len - local.set $len|20 - local.get $delta - local.set $delta|21 - local.get $tmp - local.set $rest - i32.const 3824 - local.get $kappa - i32.const 2 - i32.shl - i32.add - i64.load32_u - local.get $one_exp - i64.extend_i32_s - i64.shl - local.set $ten_kappa - local.get $wp_w_frc - local.set $wp_w - local.get $buffer|19 - local.get $len|20 + local.set $ten_kappa + local.get $wp_w_frc + local.set $wp_w + local.get $buffer|19 + local.get $len|20 + i32.const 1 + i32.sub + i32.const 1 + i32.shl + i32.add + local.set $lastp + local.get $lastp + i32.load16_u + local.set $digit + loop $while-continue|3 + local.get $rest + local.get $wp_w + i64.lt_u + if (result i32) + local.get $delta|21 + local.get $rest + i64.sub + local.get $ten_kappa + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w + local.get $rest + i64.sub + local.get $rest + local.get $ten_kappa + i64.add + local.get $wp_w + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp - local.get $lastp - i32.load16_u local.set $digit - block $while-break|3 - loop $while-continue|3 - local.get $rest - local.get $wp_w - i64.lt_u - if (result i32) - local.get $delta|21 - local.get $rest - i64.sub - local.get $ten_kappa - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w - local.get $rest - i64.sub - local.get $rest - local.get $ten_kappa - i64.add - local.get $wp_w - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit - i32.const 1 - i32.sub - local.set $digit - local.get $rest - local.get $ten_kappa - i64.add - local.set $rest - br $while-continue|3 - end - end - end - local.get $lastp - local.get $digit - i32.store16 + local.get $rest + local.get $ten_kappa + i64.add + local.set $rest + br $while-continue|3 end - local.get $len - return end - br $while-continue|0 + local.get $lastp + local.get $digit + i32.store16 + local.get $len + return + end + br $while-continue|0 + end + end + loop $while-continue|4 + i32.const 1 + if + local.get $p2 + i64.const 10 + i64.mul + local.set $p2 + local.get $delta + i64.const 10 + i64.mul + local.set $delta + local.get $p2 + local.get $one_exp + i64.extend_i32_s + i64.shr_u + local.set $d|27 + local.get $d|27 + local.get $len + i64.extend_i32_s + i64.or + i64.const 0 + i64.ne + if + local.get $buffer + local.get $len + local.tee $28 + i32.const 1 + i32.add + local.set $len + local.get $28 + i32.const 1 + i32.shl + i32.add + i32.const 48 + local.get $d|27 + i32.wrap_i64 + i32.const 65535 + i32.and + i32.add + i32.store16 end - end - end - block $while-break|4 - loop $while-continue|4 + local.get $p2 + local.get $mask + i64.and + local.set $p2 + local.get $kappa i32.const 1 + i32.sub + local.set $kappa + local.get $p2 + local.get $delta + i64.lt_u if - local.get $p2 - i64.const 10 - i64.mul - local.set $p2 - local.get $delta - i64.const 10 + global.get $~lib/util/number/_K + local.get $kappa + i32.add + global.set $~lib/util/number/_K + local.get $wp_w_frc + i32.const 3824 + i32.const 0 + local.get $kappa + i32.sub + i32.const 2 + i32.shl + i32.add + i64.load32_u i64.mul - local.set $delta - local.get $p2 - local.get $one_exp - i64.extend_i32_s - i64.shr_u - local.set $d|27 - local.get $d|27 + local.set $wp_w_frc + local.get $buffer + local.set $buffer|29 local.get $len - i64.extend_i32_s - i64.or - i64.const 0 - i64.ne - if - local.get $buffer - local.get $len - local.tee $28 - i32.const 1 - i32.add - local.set $len - local.get $28 - i32.const 1 - i32.shl - i32.add - i32.const 48 - local.get $d|27 - i32.wrap_i64 - i32.const 65535 - i32.and - i32.add - i32.store16 - end + local.set $len|30 + local.get $delta + local.set $delta|31 local.get $p2 - local.get $mask - i64.and - local.set $p2 - local.get $kappa + local.set $rest|32 + local.get $one_frc + local.set $ten_kappa|33 + local.get $wp_w_frc + local.set $wp_w|34 + local.get $buffer|29 + local.get $len|30 i32.const 1 i32.sub - local.set $kappa - local.get $p2 - local.get $delta - i64.lt_u - if - global.get $~lib/util/number/_K - local.get $kappa - i32.add - global.set $~lib/util/number/_K - local.get $wp_w_frc - i32.const 3824 - i32.const 0 - local.get $kappa - i32.sub - i32.const 2 - i32.shl - i32.add - i64.load32_u - i64.mul - local.set $wp_w_frc - block $~lib/util/number/grisuRound|inlined.1 - local.get $buffer - local.set $buffer|29 - local.get $len - local.set $len|30 - local.get $delta - local.set $delta|31 - local.get $p2 - local.set $rest|32 - local.get $one_frc - local.set $ten_kappa|33 - local.get $wp_w_frc - local.set $wp_w|34 - local.get $buffer|29 - local.get $len|30 + i32.const 1 + i32.shl + i32.add + local.set $lastp|35 + local.get $lastp|35 + i32.load16_u + local.set $digit|36 + loop $while-continue|6 + local.get $rest|32 + local.get $wp_w|34 + i64.lt_u + if (result i32) + local.get $delta|31 + local.get $rest|32 + i64.sub + local.get $ten_kappa|33 + i64.ge_u + else + i32.const 0 + end + if (result i32) + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.lt_u + if (result i32) + i32.const 1 + else + local.get $wp_w|34 + local.get $rest|32 + i64.sub + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.get $wp_w|34 + i64.sub + i64.gt_u + end + else + i32.const 0 + end + if + local.get $digit|36 i32.const 1 i32.sub - i32.const 1 - i32.shl - i32.add - local.set $lastp|35 - local.get $lastp|35 - i32.load16_u local.set $digit|36 - block $while-break|6 - loop $while-continue|6 - local.get $rest|32 - local.get $wp_w|34 - i64.lt_u - if (result i32) - local.get $delta|31 - local.get $rest|32 - i64.sub - local.get $ten_kappa|33 - i64.ge_u - else - i32.const 0 - end - if (result i32) - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.lt_u - if (result i32) - i32.const 1 - else - local.get $wp_w|34 - local.get $rest|32 - i64.sub - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.get $wp_w|34 - i64.sub - i64.gt_u - end - else - i32.const 0 - end - if - local.get $digit|36 - i32.const 1 - i32.sub - local.set $digit|36 - local.get $rest|32 - local.get $ten_kappa|33 - i64.add - local.set $rest|32 - br $while-continue|6 - end - end - end - local.get $lastp|35 - local.get $digit|36 - i32.store16 + local.get $rest|32 + local.get $ten_kappa|33 + i64.add + local.set $rest|32 + br $while-continue|6 end - local.get $len - return end - br $while-continue|4 + local.get $lastp|35 + local.get $digit|36 + i32.store16 + local.get $len + return end + br $while-continue|4 end - unreachable end unreachable ) @@ -3702,22 +3654,20 @@ i32.const 1 i32.add local.set $decimals - block $~lib/util/number/utoa32_dec_core|inlined.1 - local.get $buffer|8 - local.set $buffer|12 - local.get $k|9 - local.set $num - local.get $decimals - local.set $offset|14 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|12 - local.get $num - local.get $offset|14 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|8 + local.set $buffer|12 + local.get $k|9 + local.set $num + local.get $decimals + local.set $offset|14 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|12 + local.get $num + local.get $offset|14 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|8 i32.const 45 i32.const 43 @@ -3783,22 +3733,20 @@ i32.const 1 i32.add local.set $decimals|19 - block $~lib/util/number/utoa32_dec_core|inlined.2 - local.get $buffer|16 - local.set $buffer|20 - local.get $k|17 - local.set $num|21 - local.get $decimals|19 - local.set $offset|22 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|20 - local.get $num|21 - local.get $offset|22 - call $~lib/util/number/utoa32_dec_lut - end + local.get $buffer|16 + local.set $buffer|20 + local.get $k|17 + local.set $num|21 + local.get $decimals|19 + local.set $offset|22 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|20 + local.get $num|21 + local.get $offset|22 + call $~lib/util/number/utoa32_dec_lut local.get $buffer|16 i32.const 45 i32.const 43 @@ -3982,115 +3930,111 @@ i32.sub local.set $exp end - block $~lib/util/number/normalizedBoundaries|inlined.0 - local.get $frc - local.set $f - local.get $exp - local.set $e - local.get $isSingle|7 - local.set $isSingle|16 - local.get $f - i64.const 1 - i64.shl - i64.const 1 - i64.add - local.set $frc|17 - local.get $e - i32.const 1 - i32.sub - local.set $exp|18 - local.get $frc|17 - i64.clz - i32.wrap_i64 - local.set $off - local.get $frc|17 - local.get $off - i64.extend_i32_s - i64.shl - local.set $frc|17 - local.get $exp|18 - local.get $off - i32.sub - local.set $exp|18 - i32.const 1 - local.get $f - local.get $isSingle|16 - if (result i64) - i64.const 8388608 - else - i64.const 4503599627370496 - end - i64.eq - i32.add - local.set $m - local.get $frc|17 - global.set $~lib/util/number/_frc_plus - local.get $f - local.get $m - i64.extend_i32_s - i64.shl - i64.const 1 - i64.sub - local.get $e - local.get $m - i32.sub - local.get $exp|18 - i32.sub - i64.extend_i32_s - i64.shl - global.set $~lib/util/number/_frc_minus - local.get $exp|18 - global.set $~lib/util/number/_exp - end - block $~lib/util/number/getCachedPower|inlined.0 - global.get $~lib/util/number/_exp - local.set $minExp - i32.const -61 - local.get $minExp - i32.sub - f64.convert_i32_s - f64.const 0.30102999566398114 - f64.mul - f64.const 347 - f64.add - local.set $dk - local.get $dk - i32.trunc_sat_f64_s - local.set $k - local.get $k - local.get $k - f64.convert_i32_s - local.get $dk - f64.ne - i32.add - local.set $k - local.get $k - i32.const 3 - i32.shr_s - i32.const 1 - i32.add - local.set $index - i32.const 348 - local.get $index - i32.const 3 - i32.shl - i32.sub - global.set $~lib/util/number/_K - i32.const 2952 - local.get $index - i32.const 3 - i32.shl - i32.add - i64.load - global.set $~lib/util/number/_frc_pow - i32.const 3648 - local.get $index - i32.const 1 - i32.shl - i32.add - i32.load16_s - global.set $~lib/util/number/_exp_pow + local.get $frc + local.set $f + local.get $exp + local.set $e + local.get $isSingle|7 + local.set $isSingle|16 + local.get $f + i64.const 1 + i64.shl + i64.const 1 + i64.add + local.set $frc|17 + local.get $e + i32.const 1 + i32.sub + local.set $exp|18 + local.get $frc|17 + i64.clz + i32.wrap_i64 + local.set $off + local.get $frc|17 + local.get $off + i64.extend_i32_s + i64.shl + local.set $frc|17 + local.get $exp|18 + local.get $off + i32.sub + local.set $exp|18 + i32.const 1 + local.get $f + local.get $isSingle|16 + if (result i64) + i64.const 8388608 + else + i64.const 4503599627370496 end + i64.eq + i32.add + local.set $m + local.get $frc|17 + global.set $~lib/util/number/_frc_plus + local.get $f + local.get $m + i64.extend_i32_s + i64.shl + i64.const 1 + i64.sub + local.get $e + local.get $m + i32.sub + local.get $exp|18 + i32.sub + i64.extend_i32_s + i64.shl + global.set $~lib/util/number/_frc_minus + local.get $exp|18 + global.set $~lib/util/number/_exp + global.get $~lib/util/number/_exp + local.set $minExp + i32.const -61 + local.get $minExp + i32.sub + f64.convert_i32_s + f64.const 0.30102999566398114 + f64.mul + f64.const 347 + f64.add + local.set $dk + local.get $dk + i32.trunc_sat_f64_s + local.set $k + local.get $k + local.get $k + f64.convert_i32_s + local.get $dk + f64.ne + i32.add + local.set $k + local.get $k + i32.const 3 + i32.shr_s + i32.const 1 + i32.add + local.set $index + i32.const 348 + local.get $index + i32.const 3 + i32.shl + i32.sub + global.set $~lib/util/number/_K + i32.const 2952 + local.get $index + i32.const 3 + i32.shl + i32.add + i64.load + global.set $~lib/util/number/_frc_pow + i32.const 3648 + local.get $index + i32.const 1 + i32.shl + i32.add + i32.load16_s + global.set $~lib/util/number/_exp_pow local.get $frc i64.clz i32.wrap_i64 @@ -4453,7 +4397,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/staticarray/StaticArray<~lib/string/String>#__visit (param $this i32) (param $cookie i32) (local $cur i32) @@ -4470,27 +4413,25 @@ call $~lib/rt/common/OBJECT#get:rtSize i32.add local.set $end - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $cur + local.get $end + i32.lt_u + if local.get $cur - local.get $end - i32.lt_u + i32.load + local.set $val + local.get $val if - local.get $cur - i32.load - local.set $val local.get $val - if - local.get $val - local.get $cookie - call $~lib/rt/itcms/__visit - end - local.get $cur - i32.const 4 - i32.add - local.set $cur - br $while-continue|0 + local.get $cookie + call $~lib/rt/itcms/__visit end + local.get $cur + i32.const 4 + i32.add + local.set $cur + br $while-continue|0 end end ) @@ -5032,12 +4973,6 @@ global.set $~lib/memory/__stack_pointer local.get $2 return - local.set $2 - global.get $~lib/memory/__stack_pointer - i32.const 8 - i32.add - global.set $~lib/memory/__stack_pointer - local.get $2 ) (func $templateliteral/test_string (local $a i32) @@ -6399,24 +6334,22 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_dec_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer - local.get $value - local.set $num - local.get $decimals - local.set $offset - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer - local.get $num - local.get $offset - call $~lib/util/number/utoa32_dec_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer + local.get $value + local.set $num + local.get $decimals + local.set $offset + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer + local.get $num + local.get $offset + call $~lib/util/number/utoa32_dec_lut else local.get $radix i32.const 16 @@ -6441,25 +6374,23 @@ call $~lib/rt/itcms/__new local.tee $out i32.store - block $~lib/util/number/utoa32_hex_core|inlined.0 - local.get $out - local.get $sign - i32.add - local.set $buffer|9 - local.get $value - local.set $num|10 - local.get $decimals|8 - local.set $offset|11 - i32.const 0 - i32.const 1 - i32.ge_s - drop - local.get $buffer|9 - local.get $num|10 - i64.extend_i32_u - local.get $offset|11 - call $~lib/util/number/utoa_hex_lut - end + local.get $out + local.get $sign + i32.add + local.set $buffer|9 + local.get $value + local.set $num|10 + local.get $decimals|8 + local.set $offset|11 + i32.const 0 + i32.const 1 + i32.ge_s + drop + local.get $buffer|9 + local.get $num|10 + i64.extend_i32_u + local.get $offset|11 + call $~lib/util/number/utoa_hex_lut else local.get $value local.set $val32 diff --git a/tests/compiler/templateliteral.release.wat b/tests/compiler/templateliteral.release.wat index 5039ce7ba9..55f98e34df 100644 --- a/tests/compiler/templateliteral.release.wat +++ b/tests/compiler/templateliteral.release.wat @@ -1132,7 +1132,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1165,7 +1164,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -3054,634 +3052,631 @@ i32.sub global.set $~lib/memory/__stack_pointer block $folding-inner1 - block $folding-inner0 - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 32 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=12 + i32.const 1056 + i32.const 1056 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 32 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=12 - i32.const 1056 - i32.const 1056 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 4 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=20 - i32.const 1056 - i32.const 1088 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1616 - i32.store offset=12 - local.get $0 - i32.const 1616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 5 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=24 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store offset=20 - i32.const 1748 - i32.const 1056 - i32.store - i32.const 1744 - i32.const 1056 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store offset=20 - i32.const 1756 - i32.const 1088 - i32.store - i32.const 1744 - i32.const 1088 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 1744 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 - i32.const 1744 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1792 - i32.store offset=12 - local.get $0 - i32.const 1792 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 6 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 32 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.const 4 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=20 + i32.const 1056 + i32.const 1088 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1616 + i32.store offset=12 + local.get $0 + i32.const 1616 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 24 - memory.fill - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3616 - i32.store offset=4 - local.get $0 - i32.const 3616 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 13 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - i32.const 1 - call $~lib/number/I32#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - i32.const 2 - call $~lib/number/I32#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3648 - i32.store offset=4 - local.get $0 - i32.const 3648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 14 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $~lib/number/I32#toString - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $~lib/number/I32#toString - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 3684 - local.get $0 - i32.store - i32.const 3680 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 3692 - local.get $1 - i32.store - i32.const 3680 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 3680 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 - i32.const 3680 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 3728 - i32.store offset=4 - local.get $0 - i32.const 3728 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 15 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.const 5 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=24 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store offset=20 + i32.const 1748 + i32.const 1056 + i32.store + i32.const 1744 + i32.const 1056 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store offset=20 + i32.const 1756 + i32.const 1088 + i32.store + i32.const 1744 + i32.const 1088 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 1744 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=20 + i32.const 1744 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1792 + i32.store offset=12 + local.get $0 + i32.const 1792 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 24 - memory.fill - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4912 - i32.store offset=4 - local.get $0 - i32.const 4912 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 22 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - f64.const 1 - call $~lib/number/F64#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - f64.const 2 - call $~lib/number/F64#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - local.get $0 - local.get $1 - call $~lib/string/String#concat - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 4944 - i32.store offset=4 - local.get $0 - i32.const 4944 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 23 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - f64.const 1 - call $~lib/number/F64#toString - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - f64.const 2 - call $~lib/number/F64#toString - local.tee $1 - i32.store offset=20 - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=12 - i32.const 4980 - local.get $0 - i32.store - i32.const 4976 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=12 - i32.const 4988 - local.get $1 - i32.store - i32.const 4976 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 4976 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=12 - i32.const 4976 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5024 - i32.store offset=4 - local.get $0 - i32.const 5024 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 24 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - call $templateliteral/test_fast_paths_string - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.const 6 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 32 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + i32.const 1 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3616 + i32.store offset=4 + local.get $0 + i32.const 3616 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 36 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 1 - call $templateliteral/Ref#constructor - local.tee $2 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 2 - call $templateliteral/Ref#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5360 - i32.store offset=12 - local.get $1 - i32.const 5360 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 51 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=24 - local.get $2 - call $templateliteral/Ref#toString - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=24 - local.get $0 - call $templateliteral/Ref#toString - local.set $3 - global.get $~lib/memory/__stack_pointer - local.get $3 - i32.store offset=20 - local.get $1 - local.get $3 - call $~lib/string/String#concat - local.set $1 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5392 - i32.store offset=12 - local.get $1 - i32.const 5392 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 52 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - local.get $2 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $2 - call $templateliteral/Ref#toString - local.tee $1 - i32.store offset=28 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - call $templateliteral/Ref#toString - local.tee $0 - i32.store offset=32 - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $1 - i32.store offset=20 - i32.const 5444 - local.get $1 - i32.store - i32.const 5440 - local.get $1 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - i32.const 5452 - local.get $0 - i32.store - i32.const 5440 - local.get $0 - i32.const 1 - call $~lib/rt/itcms/__link - global.get $~lib/memory/__stack_pointer - i32.const 5440 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - i32.const 1184 - i32.store offset=20 - i32.const 5440 - call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 5488 - i32.store offset=12 - local.get $0 - i32.const 5488 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 53 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 36 - i32.add - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 24 - i32.sub - global.set $~lib/memory/__stack_pointer - global.get $~lib/memory/__stack_pointer - i32.const 5696 - i32.lt_s - br_if $folding-inner1 - global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.const 13 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + i32.const 1 + call $~lib/number/I32#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + i32.const 2 + call $~lib/number/I32#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3648 + i32.store offset=4 + local.get $0 + i32.const 3648 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - i32.const 24 - memory.fill - global.get $~lib/memory/__stack_pointer - i32.const 5552 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5552 + i32.const 1120 + i32.const 14 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $~lib/number/I32#toString + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $~lib/number/I32#toString + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 3684 + local.get $0 + i32.store + i32.const 3680 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 3692 + local.get $1 + i32.store + i32.const 3680 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 3680 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=12 + i32.const 3680 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 3728 + i32.store offset=4 + local.get $0 + i32.const 3728 + call $~lib/string/String.__eq + i32.eqz + if i32.const 0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=4 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1088 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=12 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - i32.store - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=8 - global.get $~lib/memory/__stack_pointer - i32.const 1056 - local.get $0 - call $templateliteral/RecursiveObject#constructor - local.tee $0 - i32.store offset=16 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store offset=20 - local.get $0 - call $templateliteral/RecursiveObject#toString - local.set $0 - global.get $~lib/memory/__stack_pointer - local.get $0 - i32.store - global.get $~lib/memory/__stack_pointer - i32.const 5648 - i32.store offset=8 - local.get $0 - i32.const 5648 - call $~lib/string/String.__eq - i32.eqz - if - i32.const 0 - i32.const 1120 - i32.const 118 - i32.const 3 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer + i32.const 1120 + i32.const 15 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + f64.const 1 + call $~lib/number/F64#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4912 + i32.store offset=4 + local.get $0 + i32.const 4912 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 22 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + f64.const 1 + call $~lib/number/F64#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + f64.const 2 + call $~lib/number/F64#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + local.get $0 + local.get $1 + call $~lib/string/String#concat + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 4944 + i32.store offset=4 + local.get $0 + i32.const 4944 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 23 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + f64.const 1 + call $~lib/number/F64#toString + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + f64.const 2 + call $~lib/number/F64#toString + local.tee $1 + i32.store offset=20 + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=12 + i32.const 4980 + local.get $0 + i32.store + i32.const 4976 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=12 + i32.const 4988 + local.get $1 + i32.store + i32.const 4976 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 4976 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=12 + i32.const 4976 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5024 + i32.store offset=4 + local.get $0 + i32.const 5024 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 i32.const 24 - i32.add - global.set $~lib/memory/__stack_pointer - return + i32.const 3 + call $~lib/builtins/abort + unreachable end - unreachable + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + call $templateliteral/test_fast_paths_string + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 36 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 1 + call $templateliteral/Ref#constructor + local.tee $2 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 2 + call $templateliteral/Ref#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5360 + i32.store offset=12 + local.get $1 + i32.const 5360 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 51 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=24 + local.get $2 + call $templateliteral/Ref#toString + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=24 + local.get $0 + call $templateliteral/Ref#toString + local.set $3 + global.get $~lib/memory/__stack_pointer + local.get $3 + i32.store offset=20 + local.get $1 + local.get $3 + call $~lib/string/String#concat + local.set $1 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5392 + i32.store offset=12 + local.get $1 + i32.const 5392 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 52 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + local.get $2 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $2 + call $templateliteral/Ref#toString + local.tee $1 + i32.store offset=28 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + call $templateliteral/Ref#toString + local.tee $0 + i32.store offset=32 + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $1 + i32.store offset=20 + i32.const 5444 + local.get $1 + i32.store + i32.const 5440 + local.get $1 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + i32.const 5452 + local.get $0 + i32.store + i32.const 5440 + local.get $0 + i32.const 1 + call $~lib/rt/itcms/__link + global.get $~lib/memory/__stack_pointer + i32.const 5440 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + i32.const 1184 + i32.store offset=20 + i32.const 5440 + call $~lib/staticarray/StaticArray<~lib/string/String>#join + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 5488 + i32.store offset=12 + local.get $0 + i32.const 5488 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 53 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 36 + i32.add + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.sub + global.set $~lib/memory/__stack_pointer + global.get $~lib/memory/__stack_pointer + i32.const 5696 + i32.lt_s + br_if $folding-inner1 + global.get $~lib/memory/__stack_pointer + i32.const 0 + i32.const 24 + memory.fill + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5552 + i32.const 0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=4 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1088 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=12 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + i32.store + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=8 + global.get $~lib/memory/__stack_pointer + i32.const 1056 + local.get $0 + call $templateliteral/RecursiveObject#constructor + local.tee $0 + i32.store offset=16 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store offset=20 + local.get $0 + call $templateliteral/RecursiveObject#toString + local.set $0 + global.get $~lib/memory/__stack_pointer + local.get $0 + i32.store + global.get $~lib/memory/__stack_pointer + i32.const 5648 + i32.store offset=8 + local.get $0 + i32.const 5648 + call $~lib/string/String.__eq + i32.eqz + if + i32.const 0 + i32.const 1120 + i32.const 118 + i32.const 3 + call $~lib/builtins/abort + unreachable + end + global.get $~lib/memory/__stack_pointer + i32.const 24 + i32.add + global.set $~lib/memory/__stack_pointer + return end i32.const 38496 i32.const 38544 @@ -4269,12 +4264,10 @@ local.get $0 local.get $1 call $~lib/util/string/joinStringArray - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) (func $templateliteral/test_fast_paths_string (local $0 i32) @@ -4580,7 +4573,6 @@ i32.const 5328 local.get $0 call $~lib/string/String#concat - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 8 i32.add @@ -4589,7 +4581,6 @@ i32.const 12 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end i32.const 38496 @@ -4697,12 +4688,10 @@ i32.store local.get $0 i32.load - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 return end global.get $~lib/memory/__stack_pointer @@ -4755,11 +4744,9 @@ i32.store offset=16 i32.const 5616 call $~lib/staticarray/StaticArray<~lib/string/String>#join - local.set $0 global.get $~lib/memory/__stack_pointer i32.const 20 i32.add global.set $~lib/memory/__stack_pointer - local.get $0 ) ) diff --git a/tests/compiler/throw.debug.wat b/tests/compiler/throw.debug.wat index 4e51d5449c..c487003992 100644 --- a/tests/compiler/throw.debug.wat +++ b/tests/compiler/throw.debug.wat @@ -112,40 +112,38 @@ i32.store i32.const 0 local.set $i - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + local.get $max + i32.lt_s + if + global.get $~lib/memory/__stack_pointer + i32.const 64 + local.tee $b + i32.store offset=4 local.get $i - i32.const 1 - i32.add - local.tee $i local.get $max - i32.lt_s + i32.gt_s if global.get $~lib/memory/__stack_pointer - i32.const 64 - local.tee $b - i32.store offset=4 - local.get $i - local.get $max - i32.gt_s - if - global.get $~lib/memory/__stack_pointer - i32.const 192 - local.tee $c - i32.store offset=8 - i32.const 224 - i32.const 144 - i32.const 23 - i32.const 7 - call $~lib/builtins/abort - unreachable - end - global.get $~lib/memory/__stack_pointer - i32.const 272 - local.tee $d - i32.store offset=12 - br $while-continue|0 + i32.const 192 + local.tee $c + i32.store offset=8 + i32.const 224 + i32.const 144 + i32.const 23 + i32.const 7 + call $~lib/builtins/abort + unreachable end + global.get $~lib/memory/__stack_pointer + i32.const 272 + local.tee $d + i32.store offset=12 + br $while-continue|0 end end global.get $~lib/memory/__stack_pointer @@ -207,37 +205,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 368 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 368 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -463,22 +459,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -692,27 +686,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -730,28 +722,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1076,27 +1066,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1105,37 +1093,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1225,7 +1211,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1294,15 +1279,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1371,15 +1354,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1387,21 +1368,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1409,27 +1388,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1598,39 +1575,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1649,31 +1624,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -1758,16 +1731,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -1852,7 +1823,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/throw.release.wat b/tests/compiler/throw.release.wat index 065352223c..e0bd055a29 100644 --- a/tests/compiler/throw.release.wat +++ b/tests/compiler/throw.release.wat @@ -911,7 +911,6 @@ i64.shl local.tee $2 i32.wrap_i64 - local.set $4 local.get $2 i64.const 36100 i64.lt_u @@ -957,7 +956,6 @@ i32.const 0 end local.set $0 - local.get $4 i32.const -16 i32.and local.get $1 @@ -1003,7 +1001,6 @@ global.set $~lib/rt/tlsf/ROOT end global.get $~lib/rt/tlsf/ROOT - local.set $0 local.get $3 i32.const 4 i32.sub @@ -1036,7 +1033,6 @@ i32.const 1 i32.or i32.store - local.get $0 local.get $1 call $~lib/rt/tlsf/insertBlock end diff --git a/tests/compiler/typealias.debug.wat b/tests/compiler/typealias.debug.wat index 3b6064b45f..9c6d493f68 100644 --- a/tests/compiler/typealias.debug.wat +++ b/tests/compiler/typealias.debug.wat @@ -103,40 +103,38 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 diff --git a/tests/compiler/typeof.debug.wat b/tests/compiler/typeof.debug.wat index 19bad3e1c9..a91488290e 100644 --- a/tests/compiler/typeof.debug.wat +++ b/tests/compiler/typeof.debug.wat @@ -142,47 +142,44 @@ end end end - block $while-break|1 - loop $while-continue|1 - local.get $len - local.tee $7 - i32.const 1 - i32.sub - local.set $len - local.get $7 + loop $while-continue|1 + local.get $len + local.tee $7 + i32.const 1 + i32.sub + local.set $len + local.get $7 + if + local.get $ptr1 + i32.load16_u + local.set $a + local.get $ptr2 + i32.load16_u + local.set $b + local.get $a + local.get $b + i32.ne if - local.get $ptr1 - i32.load16_u - local.set $a - local.get $ptr2 - i32.load16_u - local.set $b local.get $a local.get $b - i32.ne - if - local.get $a - local.get $b - i32.sub - return - end - local.get $ptr1 - i32.const 2 - i32.add - local.set $ptr1 - local.get $ptr2 - i32.const 2 - i32.add - local.set $ptr2 - br $while-continue|1 + i32.sub + return end + local.get $ptr1 + i32.const 2 + i32.add + local.set $ptr1 + local.get $ptr2 + i32.const 2 + i32.add + local.set $ptr2 + br $while-continue|1 end end i32.const 0 return ) (func $start:typeof~anonymous|0 - nop ) (func $~lib/rt/itcms/Object#set:nextWithColor (param $this i32) (param $nextWithColor i32) local.get $this @@ -234,37 +231,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 400 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 400 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -490,22 +485,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -719,27 +712,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -757,28 +748,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1103,27 +1092,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1132,37 +1119,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1252,7 +1237,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1321,15 +1305,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1398,15 +1380,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1414,21 +1394,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1436,27 +1414,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1625,39 +1601,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1676,31 +1650,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2447,7 +2419,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/function/Function<%28%29=>void>#get:_env (param $this i32) (result i32) local.get $this diff --git a/tests/compiler/typeof.release.wat b/tests/compiler/typeof.release.wat index 2be7d98141..f0c11fa359 100644 --- a/tests/compiler/typeof.release.wat +++ b/tests/compiler/typeof.release.wat @@ -1055,7 +1055,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1088,7 +1087,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -2037,7 +2035,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -2065,7 +2062,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer diff --git a/tests/compiler/unify-local-flags.debug.wat b/tests/compiler/unify-local-flags.debug.wat index 34394ca759..d7acc2209e 100644 --- a/tests/compiler/unify-local-flags.debug.wat +++ b/tests/compiler/unify-local-flags.debug.wat @@ -39,22 +39,20 @@ local.set $x i32.const 0 local.set $i - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $i + i32.const 255 + i32.and + i32.const 255 + i32.lt_u + if local.get $i - i32.const 255 - i32.and - i32.const 255 - i32.lt_u - if - local.get $i - local.set $x - local.get $i - i32.const 1 - i32.add - local.set $i - br $while-continue|2 - end + local.set $x + local.get $i + i32.const 1 + i32.add + local.set $i + br $while-continue|2 end end ) diff --git a/tests/compiler/while.debug.wat b/tests/compiler/while.debug.wat index 35ea337ec7..f7c2a8c485 100644 --- a/tests/compiler/while.debug.wat +++ b/tests/compiler/while.debug.wat @@ -50,20 +50,18 @@ local.set $i i32.const 0 local.set $j - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + if local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j - br $while-continue|0 - end + i32.const 1 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + br $while-continue|0 end end local.get $i @@ -103,60 +101,56 @@ local.set $j i32.const 0 local.set $k - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + if local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $j - i32.const 1 - i32.add - local.set $j - block $while-break|1 - loop $while-continue|1 - local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - local.get $k - i32.const 1 - i32.add - local.set $k - br $while-continue|1 - end - end - end + i32.const 1 + i32.sub + local.set $i + local.get $j + i32.const 1 + i32.add + local.set $j + loop $while-continue|1 local.get $i - i32.const 0 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 32 - i32.const 29 - i32.const 5 - call $~lib/builtins/abort - unreachable - end - local.get $k - i32.const 9 - i32.eq - i32.eqz if - i32.const 0 - i32.const 32 - i32.const 30 - i32.const 5 - call $~lib/builtins/abort - unreachable + local.get $i + i32.const 1 + i32.sub + local.set $i + local.get $k + i32.const 1 + i32.add + local.set $k + br $while-continue|1 end - br $while-continue|0 end + local.get $i + i32.const 0 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 29 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + local.get $k + i32.const 9 + i32.eq + i32.eqz + if + i32.const 0 + i32.const 32 + i32.const 30 + i32.const 5 + call $~lib/builtins/abort + unreachable + end + br $while-continue|0 end end local.get $i @@ -206,26 +200,23 @@ local.set $i i32.const 0 local.set $j - block $while-break|0 - loop $while-continue|0 - local.get $i - local.tee $2 + loop $while-continue|0 + local.get $i + local.tee $2 + i32.const 1 + i32.sub + local.set $i + local.get $2 + if (result i32) + local.get $j i32.const 1 - i32.sub - local.set $i - local.get $2 - if (result i32) - local.get $j - i32.const 1 - i32.add - local.tee $j - else - i32.const 0 - end - if - nop - br $while-continue|0 - end + i32.add + local.tee $j + else + i32.const 0 + end + if + br $while-continue|0 end end local.get $i @@ -295,24 +286,21 @@ (local $i i32) i32.const 0 local.set $i - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + i32.const 1 + if + local.get $i i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq if local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - local.get $i - return - end - br $while-continue|0 + return end + br $while-continue|0 end - unreachable end unreachable ) @@ -371,17 +359,15 @@ (local $i i32) i32.const 0 local.set $i - block $while-break|0 - loop $while-continue|0 - local.get $i + loop $while-continue|0 + local.get $i + i32.const 1 + i32.add + local.tee $i + if i32.const 1 - i32.add - local.tee $i - if - i32.const 1 - global.set $while/ran - return - end + global.set $while/ran + return end end i32.const 0 @@ -399,16 +385,14 @@ (local $i i32) i32.const 10 local.set $i - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $i + if local.get $i - if - local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 - end + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 end end local.get $i @@ -433,28 +417,24 @@ local.set $i i32.const 10 local.set $j - block $while-break|0 - loop $while-continue|0 - local.get $i - if - block $while-break|1 - loop $while-continue|1 - local.get $j - if - local.get $j - i32.const 1 - i32.sub - local.set $j - br $while-continue|1 - end - end + loop $while-continue|0 + local.get $i + if + loop $while-continue|1 + local.get $j + if + local.get $j + i32.const 1 + i32.sub + local.set $j + br $while-continue|1 end - local.get $i - i32.const 1 - i32.sub - local.set $i - br $while-continue|0 end + local.get $i + i32.const 1 + i32.sub + local.set $i + br $while-continue|0 end end local.get $i @@ -534,37 +514,35 @@ local.get $pn call $~lib/rt/itcms/Object#get:next local.set $iter - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $iter + local.get $pn + i32.ne + if + i32.const 1 + drop local.get $iter - local.get $pn - i32.ne + call $~lib/rt/itcms/Object#get:color + i32.const 3 + i32.eq + i32.eqz if - i32.const 1 - drop - local.get $iter - call $~lib/rt/itcms/Object#get:color - i32.const 3 - i32.eq - i32.eqz - if - i32.const 0 - i32.const 144 - i32.const 160 - i32.const 16 - call $~lib/builtins/abort - unreachable - end - local.get $iter - i32.const 20 - i32.add - local.get $cookie - call $~lib/rt/__visit_members - local.get $iter - call $~lib/rt/itcms/Object#get:next - local.set $iter - br $while-continue|0 + i32.const 0 + i32.const 144 + i32.const 160 + i32.const 16 + call $~lib/builtins/abort + unreachable end + local.get $iter + i32.const 20 + i32.add + local.get $cookie + call $~lib/rt/__visit_members + local.get $iter + call $~lib/rt/itcms/Object#get:next + local.set $iter + br $while-continue|0 end end ) @@ -790,22 +768,20 @@ (local $ptr i32) global.get $~lib/memory/__stack_pointer local.set $ptr - block $while-break|0 - loop $while-continue|0 + loop $while-continue|0 + local.get $ptr + global.get $~lib/memory/__heap_base + i32.lt_u + if local.get $ptr - global.get $~lib/memory/__heap_base - i32.lt_u - if - local.get $ptr - i32.load - local.get $cookie - call $~lib/rt/itcms/__visit - local.get $ptr - i32.const 4 - i32.add - local.set $ptr - br $while-continue|0 - end + i32.load + local.get $cookie + call $~lib/rt/itcms/__visit + local.get $ptr + i32.const 4 + i32.add + local.set $ptr + br $while-continue|0 end end ) @@ -1019,27 +995,25 @@ end i32.eq if - block $~lib/rt/tlsf/SETHEAD|inlined.1 - local.get $root - local.set $root|14 - local.get $fl - local.set $fl|15 - local.get $sl - local.set $sl|16 - local.get $next - local.set $head - local.get $root|14 - local.get $fl|15 - i32.const 4 - i32.shl - local.get $sl|16 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|14 + local.get $fl + local.set $fl|15 + local.get $sl + local.set $sl|16 + local.get $next + local.set $head + local.get $root|14 + local.get $fl|15 + i32.const 4 + i32.shl + local.get $sl|16 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $next i32.eqz if @@ -1057,28 +1031,26 @@ br $~lib/rt/tlsf/GETSL|inlined.0 end local.set $slMap - block $~lib/rt/tlsf/SETSL|inlined.1 - local.get $root - local.set $root|21 - local.get $fl - local.set $fl|22 - local.get $slMap - i32.const 1 - local.get $sl - i32.shl - i32.const -1 - i32.xor - i32.and - local.tee $slMap - local.set $slMap|23 - local.get $root|21 - local.get $fl|22 - i32.const 2 - i32.shl - i32.add - local.get $slMap|23 - i32.store offset=4 - end + local.get $root + local.set $root|21 + local.get $fl + local.set $fl|22 + local.get $slMap + i32.const 1 + local.get $sl + i32.shl + i32.const -1 + i32.xor + i32.and + local.tee $slMap + local.set $slMap|23 + local.get $root|21 + local.get $fl|22 + i32.const 2 + i32.shl + i32.add + local.get $slMap|23 + i32.store offset=4 local.get $slMap i32.eqz if @@ -1403,27 +1375,25 @@ local.get $block call $~lib/rt/tlsf/Block#set:prev end - block $~lib/rt/tlsf/SETHEAD|inlined.2 - local.get $root - local.set $root|20 - local.get $fl - local.set $fl|21 - local.get $sl - local.set $sl|22 - local.get $block - local.set $head|23 - local.get $root|20 - local.get $fl|21 - i32.const 4 - i32.shl - local.get $sl|22 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head|23 - i32.store offset=96 - end + local.get $root + local.set $root|20 + local.get $fl + local.set $fl|21 + local.get $sl + local.set $sl|22 + local.get $block + local.set $head|23 + local.get $root|20 + local.get $fl|21 + i32.const 4 + i32.shl + local.get $sl|22 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head|23 + i32.store offset=96 local.get $root local.get $root call $~lib/rt/tlsf/Root#get:flMap @@ -1432,37 +1402,35 @@ i32.shl i32.or call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETSL|inlined.2 + local.get $root + local.set $root|26 + local.get $fl + local.set $fl|27 + block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) local.get $root - local.set $root|26 + local.set $root|24 local.get $fl - local.set $fl|27 - block $~lib/rt/tlsf/GETSL|inlined.1 (result i32) - local.get $root - local.set $root|24 - local.get $fl - local.set $fl|25 - local.get $root|24 - local.get $fl|25 - i32.const 2 - i32.shl - i32.add - i32.load offset=4 - br $~lib/rt/tlsf/GETSL|inlined.1 - end - i32.const 1 - local.get $sl - i32.shl - i32.or - local.set $slMap - local.get $root|26 - local.get $fl|27 + local.set $fl|25 + local.get $root|24 + local.get $fl|25 i32.const 2 i32.shl i32.add - local.get $slMap - i32.store offset=4 + i32.load offset=4 + br $~lib/rt/tlsf/GETSL|inlined.1 end + i32.const 1 + local.get $sl + i32.shl + i32.or + local.set $slMap + local.get $root|26 + local.get $fl|27 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 ) (func $~lib/rt/tlsf/addMemory (param $root i32) (param $start i32) (param $endU64 i64) (result i32) (local $end i32) @@ -1552,7 +1520,6 @@ call $~lib/rt/common/BLOCK#get:mmInfo local.set $tailInfo else - nop end else i32.const 1 @@ -1621,15 +1588,13 @@ i32.const 2 i32.or call $~lib/rt/common/BLOCK#set:mmInfo - block $~lib/rt/tlsf/SETTAIL|inlined.1 - local.get $root - local.set $root|10 - local.get $tail - local.set $tail|11 - local.get $root|10 - local.get $tail|11 - i32.store offset=1568 - end + local.get $root + local.set $root|10 + local.get $tail + local.set $tail|11 + local.get $root|10 + local.get $tail|11 + i32.store offset=1568 local.get $root local.get $left call $~lib/rt/tlsf/insertBlock @@ -1698,15 +1663,13 @@ local.get $root i32.const 0 call $~lib/rt/tlsf/Root#set:flMap - block $~lib/rt/tlsf/SETTAIL|inlined.0 - local.get $root - local.set $root|4 - i32.const 0 - local.set $tail - local.get $root|4 - local.get $tail - i32.store offset=1568 - end + local.get $root + local.set $root|4 + i32.const 0 + local.set $tail + local.get $root|4 + local.get $tail + i32.store offset=1568 i32.const 0 local.set $fl loop $for-loop|0 @@ -1714,21 +1677,19 @@ i32.const 23 i32.lt_u if - block $~lib/rt/tlsf/SETSL|inlined.0 - local.get $root - local.set $root|7 - local.get $fl - local.set $fl|8 - i32.const 0 - local.set $slMap - local.get $root|7 - local.get $fl|8 - i32.const 2 - i32.shl - i32.add - local.get $slMap - i32.store offset=4 - end + local.get $root + local.set $root|7 + local.get $fl + local.set $fl|8 + i32.const 0 + local.set $slMap + local.get $root|7 + local.get $fl|8 + i32.const 2 + i32.shl + i32.add + local.get $slMap + i32.store offset=4 i32.const 0 local.set $sl loop $for-loop|1 @@ -1736,27 +1697,25 @@ i32.const 16 i32.lt_u if - block $~lib/rt/tlsf/SETHEAD|inlined.0 - local.get $root - local.set $root|11 - local.get $fl - local.set $fl|12 - local.get $sl - local.set $sl|13 - i32.const 0 - local.set $head - local.get $root|11 - local.get $fl|12 - i32.const 4 - i32.shl - local.get $sl|13 - i32.add - i32.const 2 - i32.shl - i32.add - local.get $head - i32.store offset=96 - end + local.get $root + local.set $root|11 + local.get $fl + local.set $fl|12 + local.get $sl + local.set $sl|13 + i32.const 0 + local.set $head + local.get $root|11 + local.get $fl|12 + i32.const 4 + i32.shl + local.get $sl|13 + i32.add + i32.const 2 + i32.shl + i32.add + local.get $head + i32.store offset=96 local.get $sl i32.const 1 i32.add @@ -1925,39 +1884,37 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|1 - loop $while-continue|1 + loop $while-continue|1 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + global.set $~lib/rt/itcms/iter + local.get $obj + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - global.set $~lib/rt/itcms/iter - local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - i32.const 0 - global.set $~lib/rt/itcms/visitCount - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - global.get $~lib/rt/itcms/visitCount - i32.const 1 - i32.mul - return - end + call $~lib/rt/itcms/Object#set:color + i32.const 0 + global.set $~lib/rt/itcms/visitCount local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|1 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members + global.get $~lib/rt/itcms/visitCount + i32.const 1 + i32.mul + return end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|1 end end i32.const 0 @@ -1976,31 +1933,29 @@ global.get $~lib/rt/itcms/iter call $~lib/rt/itcms/Object#get:next local.set $obj - block $while-break|2 - loop $while-continue|2 + loop $while-continue|2 + local.get $obj + global.get $~lib/rt/itcms/toSpace + i32.ne + if local.get $obj - global.get $~lib/rt/itcms/toSpace + call $~lib/rt/itcms/Object#get:color + local.get $black i32.ne if local.get $obj - call $~lib/rt/itcms/Object#get:color local.get $black - i32.ne - if - local.get $obj - local.get $black - call $~lib/rt/itcms/Object#set:color - local.get $obj - i32.const 20 - i32.add - i32.const 0 - call $~lib/rt/__visit_members - end + call $~lib/rt/itcms/Object#set:color local.get $obj - call $~lib/rt/itcms/Object#get:next - local.set $obj - br $while-continue|2 + i32.const 20 + i32.add + i32.const 0 + call $~lib/rt/__visit_members end + local.get $obj + call $~lib/rt/itcms/Object#get:next + local.set $obj + br $while-continue|2 end end global.get $~lib/rt/itcms/fromSpace @@ -2727,28 +2682,26 @@ call $while/Ref#constructor local.tee $ref i32.store - block $while-break|1 - loop $while-continue|1 - local.get $ref + loop $while-continue|1 + local.get $ref + if + local.get $i + i32.const 1 + i32.add + local.tee $i + i32.const 10 + i32.eq if - local.get $i - i32.const 1 - i32.add - local.tee $i - i32.const 10 - i32.eq - if - i32.const 0 - local.set $ref - else - global.get $~lib/memory/__stack_pointer - i32.const 0 - call $while/Ref#constructor - local.tee $ref - i32.store - end - br $while-continue|1 + i32.const 0 + local.set $ref + else + global.get $~lib/memory/__stack_pointer + i32.const 0 + call $while/Ref#constructor + local.tee $ref + i32.store end + br $while-continue|1 end end local.get $i @@ -2869,7 +2822,6 @@ i32.const 1 i32.lt_s if - nop else br $while-break|0 end @@ -2898,7 +2850,6 @@ if br $while-break|0 else - nop end br $while-continue|0 end @@ -2959,16 +2910,14 @@ end call $~lib/rt/itcms/step drop - block $while-break|1 - loop $while-continue|1 - global.get $~lib/rt/itcms/state - i32.const 0 - i32.ne - if - call $~lib/rt/itcms/step - drop - br $while-continue|1 - end + loop $while-continue|1 + global.get $~lib/rt/itcms/state + i32.const 0 + i32.ne + if + call $~lib/rt/itcms/step + drop + br $while-continue|1 end end global.get $~lib/rt/itcms/total @@ -3225,7 +3174,6 @@ end ) (func $~lib/object/Object~visit (param $0 i32) (param $1 i32) - nop ) (func $~lib/rt/__visit_members (param $0 i32) (param $1 i32) block $invalid diff --git a/tests/compiler/while.release.wat b/tests/compiler/while.release.wat index 2457626fee..d6ca6fba01 100644 --- a/tests/compiler/while.release.wat +++ b/tests/compiler/while.release.wat @@ -1027,7 +1027,6 @@ call $~lib/rt/tlsf/initialize end global.get $~lib/rt/tlsf/ROOT - local.set $1 local.get $0 i32.const 4 i32.sub @@ -1060,7 +1059,6 @@ i32.const 1 i32.or i32.store - local.get $1 local.get $2 call $~lib/rt/tlsf/insertBlock end @@ -1939,7 +1937,6 @@ local.tee $0 i32.store global.get $~lib/memory/__stack_pointer - local.set $1 global.get $~lib/memory/__stack_pointer local.get $0 i32.store offset=4 @@ -1967,7 +1964,6 @@ i32.const 4 i32.add global.set $~lib/memory/__stack_pointer - local.get $1 local.get $0 i32.store global.get $~lib/memory/__stack_pointer